Skip to content

Commit d81a050

Browse files
wenju-hesys-ce-bb
authored andcommitted
Set LocalId parameter of GroupBroadcast to unsigned in SPV-IR (#3084)
LocalId should not be negative. Change its type from signed to unsigned in SPV-IR aligns with OpenCL work_group_broadcast built-in and use of GroupBroadcast built-in in SYCL header. Also change NumElements/Stride parameters of OpGroupAsyncCopy to unsigned. Original commit: KhronosGroup/SPIRV-LLVM-Translator@2aa4ac20f06b4ce
1 parent 19c3e72 commit d81a050

File tree

3 files changed

+8
-3
lines changed

3 files changed

+8
-3
lines changed

llvm-spirv/lib/SPIRV/SPIRVUtil.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2412,8 +2412,13 @@ class SPIRVFriendlyIRMangleInfo : public BuiltinFuncMangleInfo {
24122412
addUnsignedArg(0);
24132413
addUnsignedArg(3);
24142414
break;
2415+
case OpGroupAsyncCopy:
2416+
addUnsignedArg(3);
2417+
addUnsignedArg(4);
2418+
break;
24152419
case OpGroupUMax:
24162420
case OpGroupUMin:
2421+
case OpGroupBroadcast:
24172422
case OpGroupNonUniformBroadcast:
24182423
case OpGroupNonUniformBallotBitCount:
24192424
case OpGroupNonUniformShuffle:

llvm-spirv/test/GroupAndSubgroupInstructions.spvasm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@
137137

138138
; CHECK-SPV-IR: declare spir_func i1 @_Z16__spirv_GroupAllib(i32, i1) #[[#Attrs:]]
139139
; CHECK-SPV-IR: declare spir_func i1 @_Z16__spirv_GroupAnyib(i32, i1) #[[#Attrs]]
140-
; CHECK-SPV-IR: declare spir_func i32 @_Z22__spirv_GroupBroadcastiii(i32, i32, i32) #[[#Attrs]]
140+
; CHECK-SPV-IR: declare spir_func i32 @_Z22__spirv_GroupBroadcastiij(i32, i32, i32) #[[#Attrs]]
141141
; CHECK-SPV-IR: declare spir_func void @_Z22__spirv_ControlBarrieriii(i32, i32, i32) #[[#Attrs]]
142142
; CHECK-SPV-IR: declare spir_func i32 @_Z17__spirv_GroupIAddiii(i32, i32, i32) #[[#Attrs]]
143143
; CHECK-SPV-IR: declare spir_func float @_Z17__spirv_GroupFAddiif(i32, i32, float) #[[#Attrs]]

llvm-spirv/test/transcoding/OpGroupAsyncCopy.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@
1313
; CHECK-LLVM: declare spir_func ptr @_Z29async_work_group_strided_copyPU3AS1Dv2_hPU3AS3KS_jj9ocl_event(ptr addrspace(1), ptr addrspace(3), i32, i32, ptr)
1414
; CHECK-LLVM: declare spir_func void @_Z17wait_group_eventsiPU3AS49ocl_event(i32, ptr addrspace(4))
1515

16-
; CHECK-SPV-IR: call spir_func target("spirv.Event") @_Z22__spirv_GroupAsyncCopyiPU3AS1Dv2_cPU3AS3S_iiP13__spirv_Event(i32 2
16+
; CHECK-SPV-IR: call spir_func target("spirv.Event") @_Z22__spirv_GroupAsyncCopyiPU3AS1Dv2_cPU3AS3S_jjP13__spirv_Event(i32 2
1717
; CHECK-SPV-IR: call spir_func void @_Z23__spirv_GroupWaitEventsiiPU3AS4P13__spirv_Event(i32 2
18-
; CHECK-SPV-IR: declare spir_func target("spirv.Event") @_Z22__spirv_GroupAsyncCopyiPU3AS1Dv2_cPU3AS3S_iiP13__spirv_Event(i32, ptr addrspace(1), ptr addrspace(3), i32, i32, target("spirv.Event")
18+
; CHECK-SPV-IR: declare spir_func target("spirv.Event") @_Z22__spirv_GroupAsyncCopyiPU3AS1Dv2_cPU3AS3S_jjP13__spirv_Event(i32, ptr addrspace(1), ptr addrspace(3), i32, i32, target("spirv.Event")
1919
; CHECK-SPV-IR: declare spir_func void @_Z23__spirv_GroupWaitEventsiiPU3AS4P13__spirv_Event(i32, i32, ptr addrspace(4))
2020

2121
; CHECK-SPIRV-DAG: GroupAsyncCopy {{[0-9]+}} {{[0-9]+}} [[Scope:[0-9]+]]

0 commit comments

Comments
 (0)