blob: 4a750e62c86efc4780cb788e48120759686b6bff [file] [log] [blame]
Dávid Bolvanský584ed882019-12-09 16:47:47 +01001; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
Paul Robinsonc1617752021-01-11 08:32:36 -08002; 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 Gohman88536392008-10-02 15:04:30 +00004
Fangrui Song2262b042020-12-04 13:51:01 -08005@x = external dso_local global double
Dan Gohman88536392008-10-02 15:04:30 +00006
7define void @foo() nounwind {
Paul Robinsonc1617752021-01-11 08:32:36 -08008; 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 Popov2f448bf2022-06-22 14:33:12 +020026 %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 Gohman88536392008-10-02 15:04:30 +000030 ret void
31}
32
33define void @bar() nounwind {
Paul Robinsonc1617752021-01-11 08:32:36 -080034; ALL-LABEL: bar:
35; ALL: # %bb.0:
36; ALL-NEXT: movsd {{.*#+}} xmm0 = mem[0],zero
37; ALL-NEXT: retl
Nikita Popov2f448bf2022-06-22 14:33:12 +020038 %c = load volatile double, ptr @x
Dan Gohman88536392008-10-02 15:04:30 +000039 ret void
40}