| Index: tests_lit/llvm2ice_tests/nacl-atomic-fence-all.ll
|
| diff --git a/tests_lit/llvm2ice_tests/nacl-atomic-fence-all.ll b/tests_lit/llvm2ice_tests/nacl-atomic-fence-all.ll
|
| index 76a7e19ae88983c191348f2ff1c0cca207510d03..cf376965a7eb83138bcb3f58592db1c477272dd0 100644
|
| --- a/tests_lit/llvm2ice_tests/nacl-atomic-fence-all.ll
|
| +++ b/tests_lit/llvm2ice_tests/nacl-atomic-fence-all.ll
|
| @@ -43,14 +43,14 @@ entry:
|
| ; CHECK: mov DWORD PTR {{.*}},0x3e7
|
| ; atomic store (w/ its own mfence)
|
| ; The load + sub are optimized into one everywhere.
|
| -; CHECK: sub {{.*}},DWORD PTR {{.*}}g32_a
|
| -; CHECK: mov DWORD PTR
|
| +; CHECK: sub {{.*}},DWORD PTR {{.*}}{{(g32_a)|(.bss)}}
|
| +; CHECK: mov {{(DWORD PTR)?}}
|
| ; CHECK: mfence
|
| -; CHECK: sub {{.*}},DWORD PTR {{.*}}g32_b
|
| -; CHECK: mov DWORD PTR
|
| -; CHECK: sub {{.*}},DWORD PTR {{.*}}g32_c
|
| +; CHECK: sub {{.*}},DWORD PTR {{.*}}{{(g32_b)|(.bss)}}
|
| +; CHECK: mov {{(DWORD PTR)?}}
|
| +; CHECK: sub {{.*}},DWORD PTR {{.*}}{{(g32_c)|(.bss)}}
|
| ; CHECK: mfence
|
| -; CHECK: mov DWORD PTR
|
| +; CHECK: mov {{(DWORD PTR)?}}
|
|
|
| ; Test with the fence moved up a bit.
|
| define internal i32 @test_fused_load_sub_b() {
|
| @@ -81,16 +81,16 @@ entry:
|
| ; alloca store
|
| ; CHECK: mov DWORD PTR {{.*}},0x3e7
|
| ; atomic store (w/ its own mfence)
|
| -; CHECK: sub {{.*}},DWORD PTR {{.*}}g32_a
|
| -; CHECK: mov DWORD PTR
|
| +; CHECK: sub {{.*}},DWORD PTR {{.*}}{{(g32_a)|(.bss)}}
|
| +; CHECK: mov {{(DWORD PTR)?}}
|
| ; CHECK: mfence
|
| -; CHECK: sub {{.*}},DWORD PTR {{.*}}g32_b
|
| -; CHECK: mov DWORD PTR
|
| +; CHECK: sub {{.*}},DWORD PTR {{.*}}{{(g32_b)|(.bss)}}
|
| +; CHECK: mov {{(DWORD PTR)?}}
|
| ; CHECK: mfence
|
| ; Load + sub can still be optimized into one instruction
|
| ; because it is not separated by a fence.
|
| -; CHECK: sub {{.*}},DWORD PTR {{.*}}g32_c
|
| -; CHECK: mov DWORD PTR
|
| +; CHECK: sub {{.*}},DWORD PTR {{.*}}{{(g32_c)|(.bss)}}
|
| +; CHECK: mov {{(DWORD PTR)?}}
|
|
|
| ; Test with the fence splitting a load/sub.
|
| define internal i32 @test_fused_load_sub_c() {
|
| @@ -121,19 +121,19 @@ entry:
|
| ; alloca store
|
| ; CHECK: mov DWORD PTR {{.*}},0x3e7
|
| ; atomic store (w/ its own mfence)
|
| -; CHECK: sub {{.*}},DWORD PTR {{.*}}g32_a
|
| -; CHECK: mov DWORD PTR
|
| +; CHECK: sub {{.*}},DWORD PTR {{.*}}{{(g32_a)|(.bss)}}
|
| +; CHECK: mov {{(DWORD PTR)?}}
|
| ; CHECK: mfence
|
| ; This load + sub are no longer optimized into one,
|
| ; though perhaps it should be legal as long as
|
| ; the load stays on the same side of the fence.
|
| -; CHECK: mov {{.*}},DWORD PTR {{.*}}g32_b
|
| +; CHECK: mov {{.*}},{{(DWORD PTR )?}}{{.*}}{{(g32_b)|(.bss)}}
|
| ; CHECK: mfence
|
| ; CHECK: mov {{.*}},0x1
|
| ; CHECK: sub
|
| -; CHECK: mov DWORD PTR
|
| -; CHECK: sub {{.*}},DWORD PTR {{.*}}g32_c
|
| -; CHECK: mov DWORD PTR
|
| +; CHECK: mov {{(DWORD PTR)?}}
|
| +; CHECK: sub {{.*}},DWORD PTR {{.*}}{{(g32_c)|(.bss)}}
|
| +; CHECK: mov {{(DWORD PTR)?}}
|
|
|
|
|
| ; Test where a bunch of i8 loads could have been fused into one
|
| @@ -171,7 +171,7 @@ entry:
|
| ret i32 %b1234
|
| }
|
| ; CHECK-LABEL: could_have_fused_loads
|
| -; CHECK: mov {{.*}},BYTE PTR
|
| +; CHECK: mov {{.*}},{{(BYTE PTR)?}}
|
| ; CHECK: mov {{.*}},BYTE PTR
|
| ; CHECK: mov {{.*}},BYTE PTR
|
| ; CHECK: mfence
|
| @@ -195,8 +195,8 @@ branch2:
|
| }
|
| ; CHECK-LABEL: could_have_hoisted_loads
|
| ; CHECK: jne {{.*}}
|
| -; CHECK: mov {{.*}},DWORD PTR {{.*}}g32_d
|
| +; CHECK: mov {{.*}},{{(DWORD PTR )?}}{{.*}}{{(g32_d)|(.bss)}}
|
| ; CHECK: ret
|
| ; CHECK: mfence
|
| -; CHECK: mov {{.*}},DWORD PTR {{.*}}g32_d
|
| +; CHECK: mov {{.*}},{{(DWORD PTR )?}}{{.*}}{{(g32_d)|(.bss)}}
|
| ; CHECK: ret
|
|
|