Dávid Bolvanský | 584ed88 | 2019-12-09 16:47:47 +0100 | [diff] [blame] | 1 | ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py |
Paul Robinson | c161775 | 2021-01-11 08:32:36 -0800 | [diff] [blame] | 2 | ; RUN: llc < %s -mtriple=i686-- -mattr=sse2 | FileCheck %s --check-prefixes=ALL,OPT |
| 3 | ; RUN: llc < %s -mtriple=i686-- -mattr=sse2 -O0 | FileCheck %s --check-prefixes=ALL,NOOPT |
Dan Gohman | 8853639 | 2008-10-02 15:04:30 +0000 | [diff] [blame] | 4 | |
Fangrui Song | 2262b04 | 2020-12-04 13:51:01 -0800 | [diff] [blame] | 5 | @x = external dso_local global double |
Dan Gohman | 8853639 | 2008-10-02 15:04:30 +0000 | [diff] [blame] | 6 | |
| 7 | define void @foo() nounwind { |
Paul Robinson | c161775 | 2021-01-11 08:32:36 -0800 | [diff] [blame] | 8 | ; OPT-LABEL: foo: |
| 9 | ; OPT: # %bb.0: |
| 10 | ; OPT-NEXT: movsd {{.*#+}} xmm0 = mem[0],zero |
| 11 | ; OPT-NEXT: xorps %xmm0, %xmm0 |
| 12 | ; OPT-NEXT: movsd %xmm0, x |
| 13 | ; OPT-NEXT: movsd %xmm0, x |
| 14 | ; OPT-NEXT: movsd {{.*#+}} xmm0 = mem[0],zero |
| 15 | ; OPT-NEXT: retl |
| 16 | ; |
| 17 | ; NOOPT-LABEL: foo: |
| 18 | ; NOOPT: # %bb.0: |
| 19 | ; NOOPT-NEXT: movsd {{.*#+}} xmm0 = mem[0],zero |
| 20 | ; NOOPT-NEXT: xorps %xmm0, %xmm0 |
| 21 | ; NOOPT-NEXT: movsd %xmm0, x |
| 22 | ; NOOPT-NEXT: xorps %xmm0, %xmm0 |
| 23 | ; NOOPT-NEXT: movsd %xmm0, x |
| 24 | ; NOOPT-NEXT: movsd {{.*#+}} xmm0 = mem[0],zero |
| 25 | ; NOOPT-NEXT: retl |
Nikita Popov | 2f448bf | 2022-06-22 14:33:12 +0200 | [diff] [blame] | 26 | %a = load volatile double, ptr @x |
| 27 | store volatile double 0.0, ptr @x |
| 28 | store volatile double 0.0, ptr @x |
| 29 | %b = load volatile double, ptr @x |
Dan Gohman | 8853639 | 2008-10-02 15:04:30 +0000 | [diff] [blame] | 30 | ret void |
| 31 | } |
| 32 | |
| 33 | define void @bar() nounwind { |
Paul Robinson | c161775 | 2021-01-11 08:32:36 -0800 | [diff] [blame] | 34 | ; ALL-LABEL: bar: |
| 35 | ; ALL: # %bb.0: |
| 36 | ; ALL-NEXT: movsd {{.*#+}} xmm0 = mem[0],zero |
| 37 | ; ALL-NEXT: retl |
Nikita Popov | 2f448bf | 2022-06-22 14:33:12 +0200 | [diff] [blame] | 38 | %c = load volatile double, ptr @x |
Dan Gohman | 8853639 | 2008-10-02 15:04:30 +0000 | [diff] [blame] | 39 | ret void |
| 40 | } |