@@ -2096,7 +2096,7 @@ define i64 @nofold_fence(ptr %p) {
20962096; CHECK-LABEL: nofold_fence:
20972097; CHECK: # %bb.0:
20982098; CHECK-NEXT: movq (%rdi), %rax
2099- ; CHECK-NEXT: mfence
2099+ ; CHECK-NEXT: lock orl $0, -{{[0-9]+}}(%rsp)
21002100; CHECK-NEXT: addq $15, %rax
21012101; CHECK-NEXT: retq
21022102 %v = load atomic i64 , ptr %p unordered , align 8
@@ -2170,7 +2170,7 @@ define i64 @fold_constant_fence(i64 %arg) {
21702170; CHECK-LABEL: fold_constant_fence:
21712171; CHECK: # %bb.0:
21722172; CHECK-NEXT: movq Constant(%rip), %rax
2173- ; CHECK-NEXT: mfence
2173+ ; CHECK-NEXT: lock orl $0, -{{[0-9]+}}(%rsp)
21742174; CHECK-NEXT: addq %rdi, %rax
21752175; CHECK-NEXT: retq
21762176 %v = load atomic i64 , ptr @Constant unordered , align 8
@@ -2197,7 +2197,7 @@ define i64 @fold_invariant_fence(ptr dereferenceable(8) %p, i64 %arg) {
21972197; CHECK-LABEL: fold_invariant_fence:
21982198; CHECK: # %bb.0:
21992199; CHECK-NEXT: movq (%rdi), %rax
2200- ; CHECK-NEXT: mfence
2200+ ; CHECK-NEXT: lock orl $0, -{{[0-9]+}}(%rsp)
22012201; CHECK-NEXT: addq %rsi, %rax
22022202; CHECK-NEXT: retq
22032203 %v = load atomic i64 , ptr %p unordered , align 8 , !invariant.load !{}
@@ -2321,7 +2321,7 @@ define i1 @fold_cmp_over_fence(ptr %p, i32 %v1) {
23212321; CHECK-O0-LABEL: fold_cmp_over_fence:
23222322; CHECK-O0: # %bb.0:
23232323; CHECK-O0-NEXT: movl (%rdi), %eax
2324- ; CHECK-O0-NEXT: mfence
2324+ ; CHECK-O0-NEXT: lock orl $0, -{{[0-9]+}}(%rsp)
23252325; CHECK-O0-NEXT: cmpl %eax, %esi
23262326; CHECK-O0-NEXT: jne .LBB116_2
23272327; CHECK-O0-NEXT: # %bb.1: # %taken
@@ -2335,7 +2335,7 @@ define i1 @fold_cmp_over_fence(ptr %p, i32 %v1) {
23352335; CHECK-O3-LABEL: fold_cmp_over_fence:
23362336; CHECK-O3: # %bb.0:
23372337; CHECK-O3-NEXT: movl (%rdi), %eax
2338- ; CHECK-O3-NEXT: mfence
2338+ ; CHECK-O3-NEXT: lock orl $0, -{{[0-9]+}}(%rsp)
23392339; CHECK-O3-NEXT: cmpl %eax, %esi
23402340; CHECK-O3-NEXT: jne .LBB116_2
23412341; CHECK-O3-NEXT: # %bb.1: # %taken
0 commit comments