Skip to content

Commit 351dda7

Browse files
alsepkowCopilot
andcommitted
Remove wave/quad op tests for min precision types
Wave and quad intrinsics (WaveReadLaneAt, WaveReadLaneFirst, WaveActiveSum/Min/Max/Product/AllEqual, WavePrefixSum/Product, WaveMultiPrefixSum/Product, WaveMatch, QuadReadLaneAt, QuadReadAcrossX/Y/Diagonal) do not support min precision types (min16float, min16int, min16uint). The DXIL wave/quad shuffle operations operate on 32-bit or 64-bit register slots and do not handle 16-bit min precision payloads. Removes 48 test entries (16 per min precision type) and adds explanatory comments. Co-authored-by: Copilot <[email protected]>
1 parent 4e654b6 commit 351dda7

1 file changed

Lines changed: 9 additions & 61 deletions

File tree

tools/clang/unittests/HLSLExec/LongVectors.cpp

Lines changed: 9 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -2886,25 +2886,9 @@ class DxilConf_SM69_Vectorized_Core : public TestClassCommon {
28862886
HLK_TEST(DerivativeDdxFine, HLSLMin16Float_t);
28872887
HLK_TEST(DerivativeDdyFine, HLSLMin16Float_t);
28882888

2889-
// Quad
2890-
HLK_TEST(QuadReadLaneAt, HLSLMin16Float_t);
2891-
HLK_TEST(QuadReadAcrossX, HLSLMin16Float_t);
2892-
HLK_TEST(QuadReadAcrossY, HLSLMin16Float_t);
2893-
HLK_TEST(QuadReadAcrossDiagonal, HLSLMin16Float_t);
2894-
2895-
// Wave
2896-
HLK_WAVEOP_TEST(WaveActiveSum, HLSLMin16Float_t);
2897-
HLK_WAVEOP_TEST(WaveActiveMin, HLSLMin16Float_t);
2898-
HLK_WAVEOP_TEST(WaveActiveMax, HLSLMin16Float_t);
2899-
HLK_WAVEOP_TEST(WaveActiveProduct, HLSLMin16Float_t);
2900-
HLK_WAVEOP_TEST(WaveActiveAllEqual, HLSLMin16Float_t);
2901-
HLK_WAVEOP_TEST(WaveReadLaneAt, HLSLMin16Float_t);
2902-
HLK_WAVEOP_TEST(WaveReadLaneFirst, HLSLMin16Float_t);
2903-
HLK_WAVEOP_TEST(WavePrefixSum, HLSLMin16Float_t);
2904-
HLK_WAVEOP_TEST(WavePrefixProduct, HLSLMin16Float_t);
2905-
HLK_WAVEOP_TEST(WaveMultiPrefixSum, HLSLMin16Float_t);
2906-
HLK_WAVEOP_TEST(WaveMultiPrefixProduct, HLSLMin16Float_t);
2907-
HLK_WAVEOP_TEST(WaveMatch, HLSLMin16Float_t);
2889+
// Wave and Quad ops excluded: these intrinsics do not support min precision
2890+
// types. The DXIL wave/quad shuffle operations operate on 32-bit or 64-bit
2891+
// register slots and do not handle 16-bit min precision payloads.
29082892

29092893
// ---- HLSLMin16Int_t (mirrors int16_t) ----
29102894

@@ -2980,27 +2964,9 @@ class DxilConf_SM69_Vectorized_Core : public TestClassCommon {
29802964
HLK_TEST(LoadAndStore_RD_SB_SRV, HLSLMin16Int_t);
29812965
HLK_TEST(LoadAndStore_RD_SB_UAV, HLSLMin16Int_t);
29822966

2983-
// Quad
2984-
HLK_TEST(QuadReadLaneAt, HLSLMin16Int_t);
2985-
HLK_TEST(QuadReadAcrossX, HLSLMin16Int_t);
2986-
HLK_TEST(QuadReadAcrossY, HLSLMin16Int_t);
2987-
HLK_TEST(QuadReadAcrossDiagonal, HLSLMin16Int_t);
2988-
2989-
// Wave
2990-
HLK_WAVEOP_TEST(WaveActiveSum, HLSLMin16Int_t);
2991-
HLK_WAVEOP_TEST(WaveActiveMin, HLSLMin16Int_t);
2992-
HLK_WAVEOP_TEST(WaveActiveMax, HLSLMin16Int_t);
2993-
HLK_WAVEOP_TEST(WaveActiveProduct, HLSLMin16Int_t);
2994-
HLK_WAVEOP_TEST(WaveActiveAllEqual, HLSLMin16Int_t);
2995-
HLK_WAVEOP_TEST(WaveReadLaneAt, HLSLMin16Int_t);
2996-
HLK_WAVEOP_TEST(WaveReadLaneFirst, HLSLMin16Int_t);
2997-
HLK_WAVEOP_TEST(WavePrefixSum, HLSLMin16Int_t);
2998-
HLK_WAVEOP_TEST(WavePrefixProduct, HLSLMin16Int_t);
2999-
HLK_WAVEOP_TEST(WaveMultiPrefixSum, HLSLMin16Int_t);
3000-
HLK_WAVEOP_TEST(WaveMultiPrefixProduct, HLSLMin16Int_t);
3001-
// WaveMultiPrefixBitAnd/BitOr/BitXor excluded: these intrinsics use the
3002-
// any_int type set which does not include min precision integer types.
3003-
HLK_WAVEOP_TEST(WaveMatch, HLSLMin16Int_t);
2967+
// Wave and Quad ops excluded: these intrinsics do not support min precision
2968+
// types. The DXIL wave/quad shuffle operations operate on 32-bit or 64-bit
2969+
// register slots and do not handle 16-bit min precision payloads.
30042970

30052971
// ---- HLSLMin16Uint_t (mirrors uint16_t) ----
30062972

@@ -3068,27 +3034,9 @@ class DxilConf_SM69_Vectorized_Core : public TestClassCommon {
30683034
HLK_TEST(LoadAndStore_RD_SB_SRV, HLSLMin16Uint_t);
30693035
HLK_TEST(LoadAndStore_RD_SB_UAV, HLSLMin16Uint_t);
30703036

3071-
// Quad
3072-
HLK_TEST(QuadReadLaneAt, HLSLMin16Uint_t);
3073-
HLK_TEST(QuadReadAcrossX, HLSLMin16Uint_t);
3074-
HLK_TEST(QuadReadAcrossY, HLSLMin16Uint_t);
3075-
HLK_TEST(QuadReadAcrossDiagonal, HLSLMin16Uint_t);
3076-
3077-
// Wave
3078-
HLK_WAVEOP_TEST(WaveActiveSum, HLSLMin16Uint_t);
3079-
HLK_WAVEOP_TEST(WaveActiveMin, HLSLMin16Uint_t);
3080-
HLK_WAVEOP_TEST(WaveActiveMax, HLSLMin16Uint_t);
3081-
HLK_WAVEOP_TEST(WaveActiveProduct, HLSLMin16Uint_t);
3082-
HLK_WAVEOP_TEST(WaveActiveAllEqual, HLSLMin16Uint_t);
3083-
HLK_WAVEOP_TEST(WaveReadLaneAt, HLSLMin16Uint_t);
3084-
HLK_WAVEOP_TEST(WaveReadLaneFirst, HLSLMin16Uint_t);
3085-
HLK_WAVEOP_TEST(WavePrefixSum, HLSLMin16Uint_t);
3086-
HLK_WAVEOP_TEST(WavePrefixProduct, HLSLMin16Uint_t);
3087-
HLK_WAVEOP_TEST(WaveMultiPrefixSum, HLSLMin16Uint_t);
3088-
HLK_WAVEOP_TEST(WaveMultiPrefixProduct, HLSLMin16Uint_t);
3089-
// WaveMultiPrefixBitAnd/BitOr/BitXor excluded: these intrinsics use the
3090-
// any_int type set which does not include min precision integer types.
3091-
HLK_WAVEOP_TEST(WaveMatch, HLSLMin16Uint_t);
3037+
// Wave and Quad ops excluded: these intrinsics do not support min precision
3038+
// types. The DXIL wave/quad shuffle operations operate on 32-bit or 64-bit
3039+
// register slots and do not handle 16-bit min precision payloads.
30923040
};
30933041

30943042
#define HLK_TEST_DOUBLE(Op, DataType) \

0 commit comments

Comments
 (0)