@@ -844,55 +844,77 @@ declare dso_local spir_func double @_Z25sub_group_broadcast_firstd(double) local
844
844
845
845
; CHECK-SPIRV: OpFunction
846
846
; CHECK-SPIRV: %[[#ballot:]] = OpGroupNonUniformBallot %[[#int4]] %[[#ScopeSubgroup]] %[[#false]]
847
+ ; CHECK-SPIRV: %[[#ballot2:]] = OpGroupNonUniformBallot %[[#int4]] %[[#ScopeSubgroup]] %[[#false]]
847
848
; CHECK-SPIRV: %[[#]] = OpGroupNonUniformInverseBallot %[[#bool]] %[[#ScopeSubgroup]] %[[#ballot]]
849
+ ; CHECK-SPIRV: %[[#]] = OpGroupNonUniformInverseBallot %[[#bool]] %[[#ScopeSubgroup]] %[[#ballot2]]
848
850
; CHECK-SPIRV: %[[#]] = OpGroupNonUniformBallotBitExtract %[[#bool]] %[[#ScopeSubgroup]] %[[#ballot]] %[[#int_0]]
851
+ ; CHECK-SPIRV: %[[#]] = OpGroupNonUniformBallotBitExtract %[[#bool]] %[[#ScopeSubgroup]] %[[#ballot2]] %[[#int_0]]
849
852
; CHECK-SPIRV: %[[#]] = OpGroupNonUniformBallotBitCount %[[#int]] %[[#ScopeSubgroup]] Reduce %[[#ballot]]
853
+ ; CHECK-SPIRV: %[[#]] = OpGroupNonUniformBallotBitCount %[[#int]] %[[#ScopeSubgroup]] Reduce %[[#ballot2]]
850
854
; CHECK-SPIRV: %[[#]] = OpGroupNonUniformBallotBitCount %[[#int]] %[[#ScopeSubgroup]] InclusiveScan %[[#ballot]]
855
+ ; CHECK-SPIRV: %[[#]] = OpGroupNonUniformBallotBitCount %[[#int]] %[[#ScopeSubgroup]] InclusiveScan %[[#ballot2]]
851
856
; CHECK-SPIRV: %[[#]] = OpGroupNonUniformBallotBitCount %[[#int]] %[[#ScopeSubgroup]] ExclusiveScan %[[#ballot]]
857
+ ; CHECK-SPIRV: %[[#]] = OpGroupNonUniformBallotBitCount %[[#int]] %[[#ScopeSubgroup]] ExclusiveScan %[[#ballot2]]
852
858
; CHECK-SPIRV: %[[#]] = OpGroupNonUniformBallotFindLSB %[[#int]] %[[#ScopeSubgroup]] %[[#ballot]]
859
+ ; CHECK-SPIRV: %[[#]] = OpGroupNonUniformBallotFindLSB %[[#int]] %[[#ScopeSubgroup]] %[[#ballot2]]
853
860
; CHECK-SPIRV: %[[#]] = OpGroupNonUniformBallotFindMSB %[[#int]] %[[#ScopeSubgroup]] %[[#ballot]]
861
+ ; CHECK-SPIRV: %[[#]] = OpGroupNonUniformBallotFindMSB %[[#int]] %[[#ScopeSubgroup]] %[[#ballot2]]
854
862
; CHECK-SPIRV: OpFunctionEnd
855
863
856
864
define dso_local spir_kernel void @testBallotOperations (i32 addrspace (1 )* nocapture ) local_unnamed_addr {
857
865
%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 )
858
867
%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 )
859
869
store i32 %3 , i32 addrspace (1 )* %0 , align 4
860
870
%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 )
861
872
%5 = getelementptr inbounds i32 , i32 addrspace (1 )* %0 , i64 1
862
873
store i32 %4 , i32 addrspace (1 )* %5 , align 4
863
874
%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 )
864
876
%7 = getelementptr inbounds i32 , i32 addrspace (1 )* %0 , i64 2
865
877
store i32 %6 , i32 addrspace (1 )* %7 , align 4
866
878
%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 )
867
880
%9 = getelementptr inbounds i32 , i32 addrspace (1 )* %0 , i64 3
868
881
store i32 %8 , i32 addrspace (1 )* %9 , align 4
869
882
%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 )
870
884
%11 = getelementptr inbounds i32 , i32 addrspace (1 )* %0 , i64 4
871
885
store i32 %10 , i32 addrspace (1 )* %11 , align 4
872
886
%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 )
873
888
%13 = getelementptr inbounds i32 , i32 addrspace (1 )* %0 , i64 5
874
889
store i32 %12 , i32 addrspace (1 )* %13 , align 4
875
890
%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 )
876
892
%15 = getelementptr inbounds i32 , i32 addrspace (1 )* %0 , i64 6
877
893
store i32 %14 , i32 addrspace (1 )* %15 , align 4
878
894
ret void
879
895
}
880
896
881
897
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 )
882
899
883
900
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 >)
884
902
885
903
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
886
905
887
906
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 >)
888
908
889
909
declare dso_local spir_func i32 @_Z31sub_group_ballot_inclusive_scanDv4_j (<4 x i32 >) local_unnamed_addr
890
910
891
911
declare dso_local spir_func i32 @_Z31sub_group_ballot_exclusive_scanDv4_j (<4 x i32 >) local_unnamed_addr
892
912
893
913
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 >)
894
915
895
916
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 >)
896
918
897
919
; CHECK-SPIRV: OpFunction
898
920
; CHECK-SPIRV: %[[#]] = OpLoad %[[#int4]] %[[#eqMask]]
0 commit comments