diff --git a/llvm/test/CodeGen/X86/store_op_load_fold.ll b/llvm/test/CodeGen/X86/store_op_load_fold.ll index c4cdc0e9932a7..8c6e28630f9a3 100644 --- a/llvm/test/CodeGen/X86/store_op_load_fold.ll +++ b/llvm/test/CodeGen/X86/store_op_load_fold.ll @@ -1,3 +1,4 @@ +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py ; RUN: llc < %s -mtriple=i686-darwin | FileCheck %s ; ; Test the add and load are folded into the store instruction. @@ -6,13 +7,13 @@ define void @foo() nounwind { ; CHECK-LABEL: foo: -; CHECK-NOT: mov -; CHECK: add -; CHECK-NEXT: ret - %tmp.0 = load i16, i16* @X ; [#uses=1] - %tmp.3 = add i16 %tmp.0, 329 ; [#uses=1] - store i16 %tmp.3, i16* @X - ret void +; CHECK: ## %bb.0: +; CHECK-NEXT: addw $329, _X ## imm = 0x149 +; CHECK-NEXT: retl + %tmp.0 = load i16, i16* @X ; [#uses=1] + %tmp.3 = add i16 %tmp.0, 329 ; [#uses=1] + store i16 %tmp.3, i16* @X + ret void } ; rdar://12838504 @@ -20,9 +21,10 @@ define void @foo() nounwind { @s2 = external global %struct.S2, align 16 define void @test2() nounwind uwtable ssp { ; CHECK-LABEL: test2: -; CHECK: mov -; CHECK-NEXT: and -; CHECK-NEXT: ret +; CHECK: ## %bb.0: +; CHECK-NEXT: movl L_s2$non_lazy_ptr, %eax +; CHECK-NEXT: andl $-262144, 20(%eax) ## imm = 0xFFFC0000 +; CHECK-NEXT: retl %bf.load35 = load i56, i56* bitcast ([7 x i8]* getelementptr inbounds (%struct.S2, %struct.S2* @s2, i32 0, i32 5) to i56*), align 16 %bf.clear36 = and i56 %bf.load35, -1125895611875329 store i56 %bf.clear36, i56* bitcast ([7 x i8]* getelementptr inbounds (%struct.S2, %struct.S2* @s2, i32 0, i32 5) to i56*), align 16