@@ -308,24 +308,7 @@ define { i64, i1 } @cmpxchg_flat_agent_i64__noalias_addrspace_edge_case0(ptr %pt
308308define { i64 , i1 } @cmpxchg_flat_agent_i64__no_2_6 (ptr %ptr , i64 %val , i64 %swap ) {
309309; CHECK-LABEL: define { i64, i1 } @cmpxchg_flat_agent_i64__no_2_6(
310310; CHECK-SAME: ptr [[PTR:%.*]], i64 [[VAL:%.*]], i64 [[SWAP:%.*]]) {
311- ; CHECK-NEXT: [[IS_PRIVATE:%.*]] = call i1 @llvm.amdgcn.is.private(ptr [[PTR]])
312- ; CHECK-NEXT: br i1 [[IS_PRIVATE]], label %[[ATOMICRMW_PRIVATE:.*]], label %[[ATOMICRMW_GLOBAL:.*]]
313- ; CHECK: [[ATOMICRMW_PRIVATE]]:
314- ; CHECK-NEXT: [[TMP1:%.*]] = addrspacecast ptr [[PTR]] to ptr addrspace(5)
315- ; CHECK-NEXT: [[TMP2:%.*]] = load i64, ptr addrspace(5) [[TMP1]], align 8
316- ; CHECK-NEXT: [[TMP3:%.*]] = icmp eq i64 [[TMP2]], [[VAL]]
317- ; CHECK-NEXT: [[TMP4:%.*]] = select i1 [[TMP3]], i64 [[SWAP]], i64 [[TMP2]]
318- ; CHECK-NEXT: store i64 [[TMP4]], ptr addrspace(5) [[TMP1]], align 8
319- ; CHECK-NEXT: [[TMP5:%.*]] = insertvalue { i64, i1 } poison, i64 [[TMP2]], 0
320- ; CHECK-NEXT: [[TMP6:%.*]] = insertvalue { i64, i1 } [[TMP5]], i1 [[TMP3]], 1
321- ; CHECK-NEXT: br label %[[ATOMICRMW_PHI:.*]]
322- ; CHECK: [[ATOMICRMW_GLOBAL]]:
323- ; CHECK-NEXT: [[TMP7:%.*]] = cmpxchg ptr [[PTR]], i64 [[VAL]], i64 [[SWAP]] syncscope("agent") monotonic seq_cst, align 8, !noalias.addrspace [[META0]]
324- ; CHECK-NEXT: br label %[[ATOMICRMW_PHI]]
325- ; CHECK: [[ATOMICRMW_PHI]]:
326- ; CHECK-NEXT: [[RESULT:%.*]] = phi { i64, i1 } [ [[TMP6]], %[[ATOMICRMW_PRIVATE]] ], [ [[TMP7]], %[[ATOMICRMW_GLOBAL]] ]
327- ; CHECK-NEXT: br label %[[ATOMICRMW_END:.*]]
328- ; CHECK: [[ATOMICRMW_END]]:
311+ ; CHECK-NEXT: [[RESULT:%.*]] = cmpxchg ptr [[PTR]], i64 [[VAL]], i64 [[SWAP]] syncscope("agent") monotonic seq_cst, align 8, !noalias.addrspace [[META4:![0-9]+]]
329312; CHECK-NEXT: ret { i64, i1 } [[RESULT]]
330313;
331314 %result = cmpxchg ptr %ptr , i64 %val , i64 %swap syncscope("agent" ) monotonic seq_cst , !noalias.addrspace !7
@@ -335,7 +318,7 @@ define { i64, i1 } @cmpxchg_flat_agent_i64__no_2_6(ptr %ptr, i64 %val, i64 %swap
335318define { i64 , i1 } @cmpxchg_flat_agent_i64__no_2_3_5 (ptr %ptr , i64 %val , i64 %swap ) {
336319; CHECK-LABEL: define { i64, i1 } @cmpxchg_flat_agent_i64__no_2_3_5(
337320; CHECK-SAME: ptr [[PTR:%.*]], i64 [[VAL:%.*]], i64 [[SWAP:%.*]]) {
338- ; CHECK-NEXT: [[RESULT:%.*]] = cmpxchg ptr [[PTR]], i64 [[VAL]], i64 [[SWAP]] syncscope("agent") monotonic seq_cst, align 8, !noalias.addrspace [[META4 :![0-9]+]]
321+ ; CHECK-NEXT: [[RESULT:%.*]] = cmpxchg ptr [[PTR]], i64 [[VAL]], i64 [[SWAP]] syncscope("agent") monotonic seq_cst, align 8, !noalias.addrspace [[META5 :![0-9]+]]
339322; CHECK-NEXT: ret { i64, i1 } [[RESULT]]
340323;
341324 %result = cmpxchg ptr %ptr , i64 %val , i64 %swap syncscope("agent" ) monotonic seq_cst , !noalias.addrspace !8
@@ -357,5 +340,6 @@ define { i64, i1 } @cmpxchg_flat_agent_i64__no_2_3_5(ptr %ptr, i64 %val, i64 %sw
357340; CHECK: [[META1]] = !{[[META2:![0-9]+]], [[META3:![0-9]+]]}
358341; CHECK: [[META2]] = !{!"foo", !"bar"}
359342; CHECK: [[META3]] = !{!"bux", !"baz"}
360- ; CHECK: [[META4]] = !{i32 2, i32 4, i32 5, i32 6}
343+ ; CHECK: [[META4]] = !{i32 2, i32 6}
344+ ; CHECK: [[META5]] = !{i32 2, i32 4, i32 5, i32 6}
361345;.
0 commit comments