Skip to content

Commit 94df4e5

Browse files
harden tests
1 parent 34cca34 commit 94df4e5

File tree

3 files changed

+39
-2
lines changed

3 files changed

+39
-2
lines changed

llvm/test/CodeGen/SPIRV/transcoding/sub_group_ballot.ll

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -844,55 +844,77 @@ declare dso_local spir_func double @_Z25sub_group_broadcast_firstd(double) local
844844

845845
; CHECK-SPIRV: OpFunction
846846
; CHECK-SPIRV: %[[#ballot:]] = OpGroupNonUniformBallot %[[#int4]] %[[#ScopeSubgroup]] %[[#false]]
847+
; CHECK-SPIRV: %[[#ballot2:]] = OpGroupNonUniformBallot %[[#int4]] %[[#ScopeSubgroup]] %[[#false]]
847848
; CHECK-SPIRV: %[[#]] = OpGroupNonUniformInverseBallot %[[#bool]] %[[#ScopeSubgroup]] %[[#ballot]]
849+
; CHECK-SPIRV: %[[#]] = OpGroupNonUniformInverseBallot %[[#bool]] %[[#ScopeSubgroup]] %[[#ballot2]]
848850
; CHECK-SPIRV: %[[#]] = OpGroupNonUniformBallotBitExtract %[[#bool]] %[[#ScopeSubgroup]] %[[#ballot]] %[[#int_0]]
851+
; CHECK-SPIRV: %[[#]] = OpGroupNonUniformBallotBitExtract %[[#bool]] %[[#ScopeSubgroup]] %[[#ballot2]] %[[#int_0]]
849852
; CHECK-SPIRV: %[[#]] = OpGroupNonUniformBallotBitCount %[[#int]] %[[#ScopeSubgroup]] Reduce %[[#ballot]]
853+
; CHECK-SPIRV: %[[#]] = OpGroupNonUniformBallotBitCount %[[#int]] %[[#ScopeSubgroup]] Reduce %[[#ballot2]]
850854
; CHECK-SPIRV: %[[#]] = OpGroupNonUniformBallotBitCount %[[#int]] %[[#ScopeSubgroup]] InclusiveScan %[[#ballot]]
855+
; CHECK-SPIRV: %[[#]] = OpGroupNonUniformBallotBitCount %[[#int]] %[[#ScopeSubgroup]] InclusiveScan %[[#ballot2]]
851856
; CHECK-SPIRV: %[[#]] = OpGroupNonUniformBallotBitCount %[[#int]] %[[#ScopeSubgroup]] ExclusiveScan %[[#ballot]]
857+
; CHECK-SPIRV: %[[#]] = OpGroupNonUniformBallotBitCount %[[#int]] %[[#ScopeSubgroup]] ExclusiveScan %[[#ballot2]]
852858
; CHECK-SPIRV: %[[#]] = OpGroupNonUniformBallotFindLSB %[[#int]] %[[#ScopeSubgroup]] %[[#ballot]]
859+
; CHECK-SPIRV: %[[#]] = OpGroupNonUniformBallotFindLSB %[[#int]] %[[#ScopeSubgroup]] %[[#ballot2]]
853860
; CHECK-SPIRV: %[[#]] = OpGroupNonUniformBallotFindMSB %[[#int]] %[[#ScopeSubgroup]] %[[#ballot]]
861+
; CHECK-SPIRV: %[[#]] = OpGroupNonUniformBallotFindMSB %[[#int]] %[[#ScopeSubgroup]] %[[#ballot2]]
854862
; CHECK-SPIRV: OpFunctionEnd
855863

856864
define dso_local spir_kernel void @testBallotOperations(i32 addrspace(1)* nocapture) local_unnamed_addr {
857865
%2 = tail call spir_func <4 x i32> @_Z16sub_group_balloti(i32 0)
866+
%r2 = tail call spir_func <4 x i32> @__spirv_GroupNonUniformBallot(i32 3, i1 false)
858867
%3 = tail call spir_func i32 @_Z24sub_group_inverse_ballotDv4_j(<4 x i32> %2)
868+
%r3 = tail call spir_func i1 @__spirv_GroupNonUniformInverseBallot(i32 3, <4 x i32> %r2)
859869
store i32 %3, i32 addrspace(1)* %0, align 4
860870
%4 = tail call spir_func i32 @_Z28sub_group_ballot_bit_extractDv4_jj(<4 x i32> %2, i32 0)
871+
%r4 = tail call spir_func i32 @__spirv_GroupNonUniformBallotBitExtract(i32 3, <4 x i32> %r2, i32 0)
861872
%5 = getelementptr inbounds i32, i32 addrspace(1)* %0, i64 1
862873
store i32 %4, i32 addrspace(1)* %5, align 4
863874
%6 = tail call spir_func i32 @_Z26sub_group_ballot_bit_countDv4_j(<4 x i32> %2)
875+
%r6 = tail call spir_func i32 @__spirv_GroupNonUniformBallotBitCount(i32 3, i32 0, <4 x i32> %r2)
864876
%7 = getelementptr inbounds i32, i32 addrspace(1)* %0, i64 2
865877
store i32 %6, i32 addrspace(1)* %7, align 4
866878
%8 = tail call spir_func i32 @_Z31sub_group_ballot_inclusive_scanDv4_j(<4 x i32> %2)
879+
%r8 = tail call spir_func i32 @__spirv_GroupNonUniformBallotBitCount(i32 3, i32 1, <4 x i32> %r2)
867880
%9 = getelementptr inbounds i32, i32 addrspace(1)* %0, i64 3
868881
store i32 %8, i32 addrspace(1)* %9, align 4
869882
%10 = tail call spir_func i32 @_Z31sub_group_ballot_exclusive_scanDv4_j(<4 x i32> %2)
883+
%r10 = tail call spir_func i32 @__spirv_GroupNonUniformBallotBitCount(i32 3, i32 2, <4 x i32> %r2)
870884
%11 = getelementptr inbounds i32, i32 addrspace(1)* %0, i64 4
871885
store i32 %10, i32 addrspace(1)* %11, align 4
872886
%12 = tail call spir_func i32 @_Z25sub_group_ballot_find_lsbDv4_j(<4 x i32> %2)
887+
%r12 = tail call spir_func i32 @__spirv_GroupNonUniformBallotFindLSB(i32 3, <4 x i32> %r2)
873888
%13 = getelementptr inbounds i32, i32 addrspace(1)* %0, i64 5
874889
store i32 %12, i32 addrspace(1)* %13, align 4
875890
%14 = tail call spir_func i32 @_Z25sub_group_ballot_find_msbDv4_j(<4 x i32> %2)
891+
%r14 = tail call spir_func i32 @__spirv_GroupNonUniformBallotFindMSB(i32 3, <4 x i32> %r2)
876892
%15 = getelementptr inbounds i32, i32 addrspace(1)* %0, i64 6
877893
store i32 %14, i32 addrspace(1)* %15, align 4
878894
ret void
879895
}
880896

881897
declare dso_local spir_func <4 x i32> @_Z16sub_group_balloti(i32) local_unnamed_addr
898+
declare dso_local spir_func <4 x i32> @__spirv_GroupNonUniformBallot(i32, i1)
882899

883900
declare dso_local spir_func i32 @_Z24sub_group_inverse_ballotDv4_j(<4 x i32>) local_unnamed_addr
901+
declare dso_local spir_func i1 @__spirv_GroupNonUniformInverseBallot(i32, <4 x i32>)
884902

885903
declare dso_local spir_func i32 @_Z28sub_group_ballot_bit_extractDv4_jj(<4 x i32>, i32) local_unnamed_addr
904+
declare dso_local spir_func i1 @__spirv_GroupNonUniformBallotBitExtract(i32, <4 x i32>, i32) local_unnamed_addr
886905

887906
declare dso_local spir_func i32 @_Z26sub_group_ballot_bit_countDv4_j(<4 x i32>) local_unnamed_addr
907+
declare dso_local spir_func i32 @__spirv_GroupNonUniformBallotBitCount(i32, i32, <4 x i32>)
888908

889909
declare dso_local spir_func i32 @_Z31sub_group_ballot_inclusive_scanDv4_j(<4 x i32>) local_unnamed_addr
890910

891911
declare dso_local spir_func i32 @_Z31sub_group_ballot_exclusive_scanDv4_j(<4 x i32>) local_unnamed_addr
892912

893913
declare dso_local spir_func i32 @_Z25sub_group_ballot_find_lsbDv4_j(<4 x i32>) local_unnamed_addr
914+
declare dso_local spir_func i32 @__spirv_GroupNonUniformBallotFindLSB(i32, <4 x i32>)
894915

895916
declare dso_local spir_func i32 @_Z25sub_group_ballot_find_msbDv4_j(<4 x i32>) local_unnamed_addr
917+
declare dso_local spir_func i32 @__spirv_GroupNonUniformBallotFindMSB(i32, <4 x i32>)
896918

897919
; CHECK-SPIRV: OpFunction
898920
; CHECK-SPIRV: %[[#]] = OpLoad %[[#int4]] %[[#eqMask]]

llvm/test/CodeGen/SPIRV/transcoding/sub_group_non_uniform_vote.ll

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,10 @@
7575
; CHECK-SPIRV-DAG: %[[#double:]] = OpTypeFloat 64
7676

7777
; CHECK-SPIRV-DAG: %[[#false:]] = OpConstantFalse %[[#bool]]
78+
; CHECK-SPIRV-DAG: %[[#true:]] = OpConstantTrue %[[#bool]]
7879
; CHECK-SPIRV-DAG: %[[#ScopeSubgroup:]] = OpConstant %[[#int]] 3
7980
; CHECK-SPIRV-DAG: %[[#char_0:]] = OpConstant %[[#char]] 0
81+
; CHECK-SPIRV-DAG: %[[#char_10:]] = OpConstant %[[#char]] 10
8082
; CHECK-SPIRV-DAG: %[[#short_0:]] = OpConstant %[[#short]] 0
8183
; CHECK-SPIRV-DAG: %[[#int_0:]] = OpConstant %[[#int]] 0
8284
; CHECK-SPIRV-DAG: %[[#long_0:]] = OpConstantNull %[[#long]]
@@ -91,40 +93,47 @@
9193

9294
define dso_local spir_kernel void @testSubGroupElect(i32 addrspace(1)* nocapture) local_unnamed_addr {
9395
%2 = tail call spir_func i32 @_Z15sub_group_electv()
94-
%r2 = tail call spir_func i32 @__spirv_GroupNonUniformElect(i32 3)
96+
%r2 = tail call spir_func i1 @__spirv_GroupNonUniformElect(i32 3)
9597
store i32 %2, i32 addrspace(1)* %0, align 4
9698
ret void
9799
}
98100

99101
declare dso_local spir_func i32 @_Z15sub_group_electv() local_unnamed_addr
100-
declare dso_local spir_func i32 @__spirv_GroupNonUniformElect(i32)
102+
declare dso_local spir_func i1 @__spirv_GroupNonUniformElect(i32)
101103

102104
; CHECK-SPIRV: OpFunction
103105
; CHECK-SPIRV: %[[#]] = OpGroupNonUniformAll %[[#bool]] %[[#ScopeSubgroup]] %[[#false]]
106+
; CHECK-SPIRV: %[[#]] = OpGroupNonUniformAll %[[#bool]] %[[#ScopeSubgroup]] %[[#true]]
104107
; CHECK-SPIRV: OpFunctionEnd
105108

106109
define dso_local spir_kernel void @testSubGroupNonUniformAll(i32 addrspace(1)* nocapture) local_unnamed_addr {
107110
%2 = tail call spir_func i32 @_Z25sub_group_non_uniform_alli(i32 0)
111+
%r2 = tail call spir_func i1 @__spirv_GroupNonUniformAll(i32 3, i1 true)
108112
store i32 %2, i32 addrspace(1)* %0, align 4
109113
ret void
110114
}
111115

112116
declare dso_local spir_func i32 @_Z25sub_group_non_uniform_alli(i32) local_unnamed_addr
117+
declare dso_local spir_func i1 @__spirv_GroupNonUniformAll(i32, i1)
113118

114119
; CHECK-SPIRV: OpFunction
115120
; CHECK-SPIRV: %[[#]] = OpGroupNonUniformAny %[[#bool]] %[[#ScopeSubgroup]] %[[#false]]
121+
; CHECK-SPIRV: %[[#]] = OpGroupNonUniformAny %[[#bool]] %[[#ScopeSubgroup]] %[[#true]]
116122
; CHECK-SPIRV: OpFunctionEnd
117123

118124
define dso_local spir_kernel void @testSubGroupNonUniformAny(i32 addrspace(1)* nocapture) local_unnamed_addr {
119125
%2 = tail call spir_func i32 @_Z25sub_group_non_uniform_anyi(i32 0)
126+
%r2 = tail call spir_func i1 @__spirv_GroupNonUniformAny(i32 3, i1 true)
120127
store i32 %2, i32 addrspace(1)* %0, align 4
121128
ret void
122129
}
123130

124131
declare dso_local spir_func i32 @_Z25sub_group_non_uniform_anyi(i32) local_unnamed_addr
132+
declare dso_local spir_func i1 @__spirv_GroupNonUniformAny(i32, i1)
125133

126134
; CHECK-SPIRV: OpFunction
127135
; CHECK-SPIRV: %[[#]] = OpGroupNonUniformAllEqual %[[#bool]] %[[#ScopeSubgroup]] %[[#char_0]]
136+
; CHECK-SPIRV: %[[#]] = OpGroupNonUniformAllEqual %[[#bool]] %[[#ScopeSubgroup]] %[[#char_10]]
128137
; CHECK-SPIRV: %[[#]] = OpGroupNonUniformAllEqual %[[#bool]] %[[#ScopeSubgroup]] %[[#char_0]]
129138
; CHECK-SPIRV: %[[#]] = OpGroupNonUniformAllEqual %[[#bool]] %[[#ScopeSubgroup]] %[[#short_0]]
130139
; CHECK-SPIRV: %[[#]] = OpGroupNonUniformAllEqual %[[#bool]] %[[#ScopeSubgroup]] %[[#short_0]]
@@ -139,6 +148,7 @@ declare dso_local spir_func i32 @_Z25sub_group_non_uniform_anyi(i32) local_unnam
139148

140149
define dso_local spir_kernel void @testSubGroupNonUniformAllEqual(i32 addrspace(1)* nocapture) local_unnamed_addr {
141150
%2 = tail call spir_func i32 @_Z31sub_group_non_uniform_all_equalc(i8 signext 0)
151+
%r2 = tail call spir_func i1 @__spirv_GroupNonUniformAllEqual(i32 3, i8 signext 10)
142152
store i32 %2, i32 addrspace(1)* %0, align 4
143153
%3 = tail call spir_func i32 @_Z31sub_group_non_uniform_all_equalh(i8 zeroext 0)
144154
store i32 %3, i32 addrspace(1)* %0, align 4
@@ -164,6 +174,7 @@ define dso_local spir_kernel void @testSubGroupNonUniformAllEqual(i32 addrspace(
164174
}
165175

166176
declare dso_local spir_func i32 @_Z31sub_group_non_uniform_all_equalc(i8 signext) local_unnamed_addr
177+
declare dso_local spir_func i1 @__spirv_GroupNonUniformAllEqual(i32, i8 signext)
167178

168179
declare dso_local spir_func i32 @_Z31sub_group_non_uniform_all_equalh(i8 zeroext) local_unnamed_addr
169180

llvm/test/CodeGen/SPIRV/transcoding/sub_group_shuffle.ll

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,16 +107,20 @@
107107

108108
define dso_local spir_kernel void @testShuffleChar(i8 addrspace(1)* nocapture) local_unnamed_addr {
109109
%2 = tail call spir_func signext i8 @_Z17sub_group_shufflecj(i8 signext 0, i32 0)
110+
%r2 = tail call spir_func signext i8 @__spirv_GroupNonUniformShuffle(i32 3, i8 signext 0, i32 0)
110111
store i8 %2, i8 addrspace(1)* %0, align 1
111112
%3 = tail call spir_func signext i8 @_Z21sub_group_shuffle_xorcj(i8 signext 0, i32 0)
113+
%r3 = tail call spir_func signext i8 @__spirv_GroupNonUniformShuffleXor(i32 3, i8 signext 0, i32 0)
112114
%4 = getelementptr inbounds i8, i8 addrspace(1)* %0, i64 1
113115
store i8 %3, i8 addrspace(1)* %4, align 1
114116
ret void
115117
}
116118

117119
declare dso_local spir_func signext i8 @_Z17sub_group_shufflecj(i8 signext, i32) local_unnamed_addr
120+
declare dso_local spir_func signext i8 @__spirv_GroupNonUniformShuffle(i32, i8 signext, i32)
118121

119122
declare dso_local spir_func signext i8 @_Z21sub_group_shuffle_xorcj(i8 signext, i32) local_unnamed_addr
123+
declare dso_local spir_func signext i8 @__spirv_GroupNonUniformShuffleXor(i32, i8 signext, i32)
120124

121125
; CHECK-SPIRV: OpFunction
122126
; CHECK-SPIRV: %[[#]] = OpGroupNonUniformShuffle %[[#char]] %[[#ScopeSubgroup]] %[[#char_0]] %[[#int_0]]

0 commit comments

Comments
 (0)