@@ -220,7 +220,7 @@ define i16 @test_and_i16(ptr %arg, i16 %val) {
220220; CHECK-NEXT: [[INV_MASK:%.*]] = xor i32 [[MASK]], -1
221221; CHECK-NEXT: [[TMP3:%.*]] = zext i16 [[VAL:%.*]] to i32
222222; CHECK-NEXT: [[VALOPERAND_SHIFTED:%.*]] = shl i32 [[TMP3]], [[SHIFTAMT]]
223- ; CHECK-NEXT: [[ANDOPERAND:%.*]] = or i32 [[INV_MASK ]], [[VALOPERAND_SHIFTED ]]
223+ ; CHECK-NEXT: [[ANDOPERAND:%.*]] = or i32 [[VALOPERAND_SHIFTED ]], [[INV_MASK ]]
224224; CHECK-NEXT: [[TMP4:%.*]] = load i32, ptr [[ALIGNEDADDR]], align 4
225225; CHECK-NEXT: br label [[ATOMICRMW_START:%.*]]
226226; CHECK: atomicrmw.start:
@@ -262,18 +262,18 @@ define i16 @test_min_i16(ptr %arg, i16 %val) {
262262; CHECK-NEXT: [[TMP4:%.*]] = icmp sle i16 [[EXTRACTED]], [[VAL:%.*]]
263263; CHECK-NEXT: [[NEW:%.*]] = select i1 [[TMP4]], i16 [[EXTRACTED]], i16 [[VAL]]
264264; CHECK-NEXT: [[EXTENDED:%.*]] = zext i16 [[NEW]] to i32
265- ; CHECK-NEXT: [[SHIFTED2 :%.*]] = shl nuw i32 [[EXTENDED]], [[SHIFTAMT]]
265+ ; CHECK-NEXT: [[SHIFTED1 :%.*]] = shl nuw i32 [[EXTENDED]], [[SHIFTAMT]]
266266; CHECK-NEXT: [[UNMASKED:%.*]] = and i32 [[LOADED]], [[INV_MASK]]
267- ; CHECK-NEXT: [[INSERTED:%.*]] = or i32 [[UNMASKED]], [[SHIFTED2 ]]
267+ ; CHECK-NEXT: [[INSERTED:%.*]] = or i32 [[UNMASKED]], [[SHIFTED1 ]]
268268; CHECK-NEXT: [[TMP5:%.*]] = cmpxchg ptr [[ALIGNEDADDR]], i32 [[LOADED]], i32 [[INSERTED]] monotonic monotonic, align 4
269269; CHECK-NEXT: [[SUCCESS:%.*]] = extractvalue { i32, i1 } [[TMP5]], 1
270270; CHECK-NEXT: [[NEWLOADED]] = extractvalue { i32, i1 } [[TMP5]], 0
271271; CHECK-NEXT: br i1 [[SUCCESS]], label [[ATOMICRMW_END:%.*]], label [[ATOMICRMW_START]]
272272; CHECK: atomicrmw.end:
273- ; CHECK-NEXT: [[SHIFTED3 :%.*]] = lshr i32 [[NEWLOADED]], [[SHIFTAMT]]
274- ; CHECK-NEXT: [[EXTRACTED4 :%.*]] = trunc i32 [[SHIFTED3 ]] to i16
273+ ; CHECK-NEXT: [[SHIFTED2 :%.*]] = lshr i32 [[NEWLOADED]], [[SHIFTAMT]]
274+ ; CHECK-NEXT: [[EXTRACTED3 :%.*]] = trunc i32 [[SHIFTED2 ]] to i16
275275; CHECK-NEXT: fence seq_cst
276- ; CHECK-NEXT: ret i16 [[EXTRACTED4 ]]
276+ ; CHECK-NEXT: ret i16 [[EXTRACTED3 ]]
277277;
278278entry:
279279 %ret = atomicrmw min ptr %arg , i16 %val seq_cst
@@ -301,17 +301,17 @@ define half @test_atomicrmw_fadd_f16(ptr %ptr, half %value) {
301301; CHECK-NEXT: [[NEW:%.*]] = fadd half [[TMP5]], [[VALUE:%.*]]
302302; CHECK-NEXT: [[TMP6:%.*]] = bitcast half [[NEW]] to i16
303303; CHECK-NEXT: [[EXTENDED:%.*]] = zext i16 [[TMP6]] to i32
304- ; CHECK-NEXT: [[SHIFTED2 :%.*]] = shl nuw i32 [[EXTENDED]], [[SHIFTAMT]]
304+ ; CHECK-NEXT: [[SHIFTED1 :%.*]] = shl nuw i32 [[EXTENDED]], [[SHIFTAMT]]
305305; CHECK-NEXT: [[UNMASKED:%.*]] = and i32 [[LOADED]], [[INV_MASK]]
306- ; CHECK-NEXT: [[INSERTED:%.*]] = or i32 [[UNMASKED]], [[SHIFTED2 ]]
306+ ; CHECK-NEXT: [[INSERTED:%.*]] = or i32 [[UNMASKED]], [[SHIFTED1 ]]
307307; CHECK-NEXT: [[TMP7:%.*]] = cmpxchg ptr [[ALIGNEDADDR]], i32 [[LOADED]], i32 [[INSERTED]] monotonic monotonic, align 4
308308; CHECK-NEXT: [[SUCCESS:%.*]] = extractvalue { i32, i1 } [[TMP7]], 1
309309; CHECK-NEXT: [[NEWLOADED]] = extractvalue { i32, i1 } [[TMP7]], 0
310310; CHECK-NEXT: br i1 [[SUCCESS]], label [[ATOMICRMW_END:%.*]], label [[ATOMICRMW_START]]
311311; CHECK: atomicrmw.end:
312- ; CHECK-NEXT: [[SHIFTED3 :%.*]] = lshr i32 [[NEWLOADED]], [[SHIFTAMT]]
313- ; CHECK-NEXT: [[EXTRACTED4 :%.*]] = trunc i32 [[SHIFTED3 ]] to i16
314- ; CHECK-NEXT: [[TMP8:%.*]] = bitcast i16 [[EXTRACTED4 ]] to half
312+ ; CHECK-NEXT: [[SHIFTED2 :%.*]] = lshr i32 [[NEWLOADED]], [[SHIFTAMT]]
313+ ; CHECK-NEXT: [[EXTRACTED3 :%.*]] = trunc i32 [[SHIFTED2 ]] to i16
314+ ; CHECK-NEXT: [[TMP8:%.*]] = bitcast i16 [[EXTRACTED3 ]] to half
315315; CHECK-NEXT: fence seq_cst
316316; CHECK-NEXT: ret half [[TMP8]]
317317;
0 commit comments