@@ -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
856864define 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
881897declare 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
883900declare 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
885903declare 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
887906declare 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
889909declare dso_local spir_func i32 @_Z31sub_group_ballot_inclusive_scanDv4_j (<4 x i32 >) local_unnamed_addr
890910
891911declare dso_local spir_func i32 @_Z31sub_group_ballot_exclusive_scanDv4_j (<4 x i32 >) local_unnamed_addr
892912
893913declare 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
895916declare 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]]
0 commit comments