diff options
| author | Yong He <yonghe@outlook.com> | 2022-08-17 23:08:34 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-08-17 23:08:34 -0700 |
| commit | adaea0e993fd8db351b5dad92802e47ed6d0ec77 (patch) | |
| tree | dfad5201677b0202b0b890cbae066b5b2f3f033b /tests/hlsl-intrinsic | |
| parent | d65c6183c0d8b365aa182c3d9026ba85522531f2 (diff) | |
Warning on lossy implicit casts. (#2367)
* Warning on bool to float conversion.
* Fix test cases.
* Improve.
* LanguageServer: don't show constant value for non constant variables.
* Fix tests.
* Fix warnings in tests.
Co-authored-by: Yong He <yhe@nvidia.com>
Diffstat (limited to 'tests/hlsl-intrinsic')
19 files changed, 33 insertions, 33 deletions
diff --git a/tests/hlsl-intrinsic/active-mask/switch.slang b/tests/hlsl-intrinsic/active-mask/switch.slang index 47d279f20..280388c68 100644 --- a/tests/hlsl-intrinsic/active-mask/switch.slang +++ b/tests/hlsl-intrinsic/active-mask/switch.slang @@ -18,7 +18,7 @@ RWStructuredBuffer<int> buffer; #define THREAD_COUNT 4 #define LOC_COUNT 5 -#define WRITE(LOC) buffer[tid + (LOC)*THREAD_COUNT] = 0xA0000000 | (tid << 24) | (LOC << 8) | WaveGetActiveMask() +#define WRITE(LOC) buffer[tid + (LOC)*THREAD_COUNT] = 0xA0000000 | (tid << 24) | (LOC << 8) | int(WaveGetActiveMask()) //TEST_INPUT:cbuffer(data=[0 1]):name C cbuffer C @@ -51,7 +51,7 @@ void test(int tid) } [numthreads(THREAD_COUNT, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { test(dispatchThreadID.x); }
\ No newline at end of file diff --git a/tests/hlsl-intrinsic/bit-cast/bit-cast-16-bit.slang b/tests/hlsl-intrinsic/bit-cast/bit-cast-16-bit.slang index adeb83a67..660ba7ef8 100644 --- a/tests/hlsl-intrinsic/bit-cast/bit-cast-16-bit.slang +++ b/tests/hlsl-intrinsic/bit-cast/bit-cast-16-bit.slang @@ -7,9 +7,9 @@ //TEST_INPUT:ubuffer(data=[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16], stride=4):name inputBuffer RWStructuredBuffer<int> inputBuffer; -int16_t readI(inout int index) { return inputBuffer[(index++) & 0xF]; } -uint16_t readU(inout int index) { return inputBuffer[(index++) & 0xF]; } -float16_t readF(inout int index) { return float(inputBuffer[(index++) & 0xF]); } +int16_t readI(inout int index) { return int16_t(inputBuffer[(index++) & 0xF]); } +uint16_t readU(inout int index) { return int16_t(inputBuffer[(index++) & 0xF]); } +float16_t readF(inout int index) { return float16_t(float(inputBuffer[(index++) & 0xF])); } //TEST_INPUT:ubuffer(data=[0 0 0 0 0 0 0 0 0 0 0 0], stride=4):out,name outputBuffer RWStructuredBuffer<int> outputBuffer; @@ -19,7 +19,7 @@ void write(int initial, inout int index, uint value) let tmp = index++; if((tmp & 3) == initial) { - outputBuffer[tmp & 0xF] = value; + outputBuffer[tmp & 0xF] = int(value); } } @@ -98,7 +98,7 @@ void test(int initial) [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { test(dispatchThreadID.x); } diff --git a/tests/hlsl-intrinsic/byte-address-buffer/byte-address-16bit-vector.slang b/tests/hlsl-intrinsic/byte-address-buffer/byte-address-16bit-vector.slang index 047637afb..8daae458e 100644 --- a/tests/hlsl-intrinsic/byte-address-buffer/byte-address-16bit-vector.slang +++ b/tests/hlsl-intrinsic/byte-address-buffer/byte-address-16bit-vector.slang @@ -48,7 +48,7 @@ int test(int val) } [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { int tid = dispatchThreadID.x; outputBuffer[tid] = test(tid); diff --git a/tests/hlsl-intrinsic/byte-address-buffer/byte-address-16bit.slang b/tests/hlsl-intrinsic/byte-address-buffer/byte-address-16bit.slang index 2985b8902..03e5909db 100644 --- a/tests/hlsl-intrinsic/byte-address-buffer/byte-address-16bit.slang +++ b/tests/hlsl-intrinsic/byte-address-buffer/byte-address-16bit.slang @@ -49,7 +49,7 @@ int test(int val) } [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { int tid = dispatchThreadID.x; outputBuffer[tid] = test(tid); diff --git a/tests/hlsl-intrinsic/byte-address-buffer/byte-address-struct.slang b/tests/hlsl-intrinsic/byte-address-buffer/byte-address-struct.slang index 6f987749f..6db93b5a3 100644 --- a/tests/hlsl-intrinsic/byte-address-buffer/byte-address-struct.slang +++ b/tests/hlsl-intrinsic/byte-address-buffer/byte-address-struct.slang @@ -44,7 +44,7 @@ int test(int val) } [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { int tid = dispatchThreadID.x; outputBuffer[tid] = test(tid); diff --git a/tests/hlsl-intrinsic/literal-int64.slang b/tests/hlsl-intrinsic/literal-int64.slang index 226a12155..977c85a9f 100644 --- a/tests/hlsl-intrinsic/literal-int64.slang +++ b/tests/hlsl-intrinsic/literal-int64.slang @@ -18,7 +18,7 @@ RWStructuredBuffer<uint64_t> outputBuffer; [numthreads(7, 1, 1)] void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) { - int idx = int64_t(dispatchThreadID.x); + int idx = int(int64_t(dispatchThreadID.x)); uint64_t v = 0; diff --git a/tests/hlsl-intrinsic/scalar-int64.slang b/tests/hlsl-intrinsic/scalar-int64.slang index 68f3c4da9..f4518f198 100644 --- a/tests/hlsl-intrinsic/scalar-int64.slang +++ b/tests/hlsl-intrinsic/scalar-int64.slang @@ -37,5 +37,5 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) int64_t v = (ti * 0x400010035435435ll) / 3ll + 7ll - 9ll; - outputBuffer[idx] = int(v) ^ int(((v >> 32) & 0xffffffff)); + outputBuffer[uint(idx)] = int(v) ^ int(((v >> 32) & 0xffffffff)); }
\ No newline at end of file diff --git a/tests/hlsl-intrinsic/scalar-uint.slang b/tests/hlsl-intrinsic/scalar-uint.slang index 2e35c782e..ed4bd419f 100644 --- a/tests/hlsl-intrinsic/scalar-uint.slang +++ b/tests/hlsl-intrinsic/scalar-uint.slang @@ -22,5 +22,5 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) ti += countbits(idx * 13); - outputBuffer[idx] = ti; + outputBuffer[idx] = int(ti); }
\ No newline at end of file diff --git a/tests/hlsl-intrinsic/scalar-uint64.slang b/tests/hlsl-intrinsic/scalar-uint64.slang index 089a756fa..f75dd8acc 100644 --- a/tests/hlsl-intrinsic/scalar-uint64.slang +++ b/tests/hlsl-intrinsic/scalar-uint64.slang @@ -22,7 +22,7 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) ti += min(idx, 1ull); ti += clamp(idx * 10, 11, 23); - ti += countbits(idx * 13); + ti += countbits(uint(idx * 13)); // Math ti = ti - idx; diff --git a/tests/hlsl-intrinsic/wave-active-count-bits.slang b/tests/hlsl-intrinsic/wave-active-count-bits.slang index 45fdd7e02..105b95a6f 100644 --- a/tests/hlsl-intrinsic/wave-active-count-bits.slang +++ b/tests/hlsl-intrinsic/wave-active-count-bits.slang @@ -13,5 +13,5 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) { int idx = int(dispatchThreadID.x); - outputBuffer[idx] = WaveActiveCountBits(idx & 5); + outputBuffer[idx] = int(WaveActiveCountBits(bool(idx & 5))); }
\ No newline at end of file diff --git a/tests/hlsl-intrinsic/wave-get-lane-index.slang b/tests/hlsl-intrinsic/wave-get-lane-index.slang index e4beb7ce0..fb09022c2 100644 --- a/tests/hlsl-intrinsic/wave-get-lane-index.slang +++ b/tests/hlsl-intrinsic/wave-get-lane-index.slang @@ -9,12 +9,12 @@ RWStructuredBuffer<int> outputBuffer; [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { int idx = dispatchThreadID.x; - int laneId = WaveGetLaneIndex(); + uint laneId = WaveGetLaneIndex(); // The laneCount will be dependent on target hardware. It seems a count of 1 is valid in spec. // For now we'll just check it's not 0. - int laneCount = WaveGetLaneCount(); - outputBuffer[idx] = ((laneCount > 0) ? 0x100 : 0) + laneId; + uint laneCount = WaveGetLaneCount(); + outputBuffer[idx] = int(((laneCount > 0) ? 0x100 : 0) + laneId); }
\ No newline at end of file diff --git a/tests/hlsl-intrinsic/wave-mask/wave-get-active.slang b/tests/hlsl-intrinsic/wave-mask/wave-get-active.slang index d19436191..c05c7baa1 100644 --- a/tests/hlsl-intrinsic/wave-mask/wave-get-active.slang +++ b/tests/hlsl-intrinsic/wave-mask/wave-get-active.slang @@ -17,6 +17,6 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) uint4 multi = WaveGetActiveMulti(); // Should be 0xf, because numthreads is 4, 1, 1 - outputBuffer[idx * 2 + 0] = mask; - outputBuffer[idx * 2 + 1] = multi.x; + outputBuffer[idx * 2 + 0] = int(mask); + outputBuffer[idx * 2 + 1] = int(multi.x); }
\ No newline at end of file diff --git a/tests/hlsl-intrinsic/wave-mask/wave-get-converged.slang b/tests/hlsl-intrinsic/wave-mask/wave-get-converged.slang index 1a7a46cea..d201f3e76 100644 --- a/tests/hlsl-intrinsic/wave-mask/wave-get-converged.slang +++ b/tests/hlsl-intrinsic/wave-mask/wave-get-converged.slang @@ -14,6 +14,6 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) int idx = int(dispatchThreadID.x); // Should be 0xf, because numthreads is 4, 1, 1 - outputBuffer[idx * 2 + 0] = WaveGetConvergedMask(); - outputBuffer[idx * 2 + 1] = WaveGetConvergedMulti().x; + outputBuffer[idx * 2 + 0] = int(WaveGetConvergedMask()); + outputBuffer[idx * 2 + 1] = int(WaveGetConvergedMulti().x); }
\ No newline at end of file diff --git a/tests/hlsl-intrinsic/wave-mask/wave-matrix.slang b/tests/hlsl-intrinsic/wave-mask/wave-matrix.slang index 650671608..f333a59fb 100644 --- a/tests/hlsl-intrinsic/wave-mask/wave-matrix.slang +++ b/tests/hlsl-intrinsic/wave-mask/wave-matrix.slang @@ -32,7 +32,7 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) matrix<uint, 2, 2> r4 = WaveMaskBitAnd(mask, uv0); matrix<uint, 2, 2> r5 = r2 + r3 + r4; - matrix<int, 2, 2> r6 = matrix<int, 2, 2>(r5[0][0], r5[0][1], r5[1][0], r5[1][1]); + matrix<int, 2, 2> r6 = matrix<int, 2, 2>(int(r5[0][0]), int(r5[0][1]), int(r5[1][0]), int(r5[1][1])); matrix<int, 2, 2> r = r0 + matrix<int, 2, 2>(r1) + r6; diff --git a/tests/hlsl-intrinsic/wave-mask/wave-vector.slang b/tests/hlsl-intrinsic/wave-mask/wave-vector.slang index 0585bae53..b1f44f4fb 100644 --- a/tests/hlsl-intrinsic/wave-mask/wave-vector.slang +++ b/tests/hlsl-intrinsic/wave-mask/wave-vector.slang @@ -22,9 +22,9 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) int2 r0 = WaveMaskSum(mask, v0); float2 r1 = WaveMaskSum(mask, v1); - int2 r2 = WaveMaskBitXor(mask, uv0); - int2 r3 = WaveMaskBitOr(mask, uv0); - int2 r4 = WaveMaskBitAnd(mask, uv0); + int2 r2 = int2(WaveMaskBitXor(mask, uv0)); + int2 r3 = int2(WaveMaskBitOr(mask, uv0)); + int2 r4 = int2(WaveMaskBitAnd(mask, uv0)); int2 r = r0 + int2(r1) + r2 + r3 + r4; diff --git a/tests/hlsl-intrinsic/wave-mask/wave.slang b/tests/hlsl-intrinsic/wave-mask/wave.slang index 4e2534cb6..70860483f 100644 --- a/tests/hlsl-intrinsic/wave-mask/wave.slang +++ b/tests/hlsl-intrinsic/wave-mask/wave.slang @@ -57,7 +57,7 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) WaveMask waveMask = ~WaveMask(0); int index = int(dispatchThreadID.x); - const int waveLaneId = WaveGetLaneIndex(); + const int waveLaneId = int(WaveGetLaneIndex()); const int value = inputBuffer[index]; const int elementCount = 9; diff --git a/tests/hlsl-intrinsic/wave-matrix.slang b/tests/hlsl-intrinsic/wave-matrix.slang index da6665eb6..c4fe635be 100644 --- a/tests/hlsl-intrinsic/wave-matrix.slang +++ b/tests/hlsl-intrinsic/wave-matrix.slang @@ -30,7 +30,7 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) matrix<uint, 2, 2> r4 = WaveActiveBitAnd(uv0); matrix<uint, 2, 2> r5 = r2 + r3 + r4; - matrix<int, 2, 2> r6 = matrix<int, 2, 2>(r5[0][0], r5[0][1], r5[1][0], r5[1][1]); + matrix<int, 2, 2> r6 = matrix<int, 2, 2>(int(r5[0][0]), int(r5[0][1]), int(r5[1][0]), int(r5[1][1])); matrix<int, 2, 2> r = r0 + matrix<int, 2, 2>(r1) + r6; diff --git a/tests/hlsl-intrinsic/wave-prefix-count-bits.slang b/tests/hlsl-intrinsic/wave-prefix-count-bits.slang index b0e2464de..e16a8428b 100644 --- a/tests/hlsl-intrinsic/wave-prefix-count-bits.slang +++ b/tests/hlsl-intrinsic/wave-prefix-count-bits.slang @@ -13,5 +13,5 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) { int idx = int(dispatchThreadID.x); - outputBuffer[idx] = WavePrefixCountBits(idx & 5); + outputBuffer[idx] = int(WavePrefixCountBits(bool(idx & 5))); }
\ No newline at end of file diff --git a/tests/hlsl-intrinsic/wave-vector.slang b/tests/hlsl-intrinsic/wave-vector.slang index cc39c7767..7721c93f0 100644 --- a/tests/hlsl-intrinsic/wave-vector.slang +++ b/tests/hlsl-intrinsic/wave-vector.slang @@ -20,9 +20,9 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) int2 r0 = WaveActiveSum(v0); float2 r1 = WaveActiveSum(v1); - int2 r2 = WaveActiveBitXor(uv0); - int2 r3 = WaveActiveBitOr(uv0); - int2 r4 = WaveActiveBitAnd(uv0); + int2 r2 = int2(WaveActiveBitXor(uv0)); + int2 r3 = int2(WaveActiveBitOr(uv0)); + int2 r4 = int2(WaveActiveBitAnd(uv0)); int2 r = r0 + int2(r1) + r2 + r3 + r4; |
