summaryrefslogtreecommitdiff
path: root/tests/hlsl-intrinsic
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2022-08-17 23:08:34 -0700
committerGitHub <noreply@github.com>2022-08-17 23:08:34 -0700
commitadaea0e993fd8db351b5dad92802e47ed6d0ec77 (patch)
treedfad5201677b0202b0b890cbae066b5b2f3f033b /tests/hlsl-intrinsic
parentd65c6183c0d8b365aa182c3d9026ba85522531f2 (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')
-rw-r--r--tests/hlsl-intrinsic/active-mask/switch.slang4
-rw-r--r--tests/hlsl-intrinsic/bit-cast/bit-cast-16-bit.slang10
-rw-r--r--tests/hlsl-intrinsic/byte-address-buffer/byte-address-16bit-vector.slang2
-rw-r--r--tests/hlsl-intrinsic/byte-address-buffer/byte-address-16bit.slang2
-rw-r--r--tests/hlsl-intrinsic/byte-address-buffer/byte-address-struct.slang2
-rw-r--r--tests/hlsl-intrinsic/literal-int64.slang2
-rw-r--r--tests/hlsl-intrinsic/scalar-int64.slang2
-rw-r--r--tests/hlsl-intrinsic/scalar-uint.slang2
-rw-r--r--tests/hlsl-intrinsic/scalar-uint64.slang2
-rw-r--r--tests/hlsl-intrinsic/wave-active-count-bits.slang2
-rw-r--r--tests/hlsl-intrinsic/wave-get-lane-index.slang8
-rw-r--r--tests/hlsl-intrinsic/wave-mask/wave-get-active.slang4
-rw-r--r--tests/hlsl-intrinsic/wave-mask/wave-get-converged.slang4
-rw-r--r--tests/hlsl-intrinsic/wave-mask/wave-matrix.slang2
-rw-r--r--tests/hlsl-intrinsic/wave-mask/wave-vector.slang6
-rw-r--r--tests/hlsl-intrinsic/wave-mask/wave.slang2
-rw-r--r--tests/hlsl-intrinsic/wave-matrix.slang2
-rw-r--r--tests/hlsl-intrinsic/wave-prefix-count-bits.slang2
-rw-r--r--tests/hlsl-intrinsic/wave-vector.slang6
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;