xref: /llvm-project/llvm/test/CodeGen/PowerPC/cfence-float.ll (revision b922a3621116b404d868af8b74cab25ab78555be)
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2; RUN: llc -mtriple=powerpc64le-unknown-unknown \
3; RUN:   < %s 2>&1 | FileCheck --check-prefix=CHECK-LE %s
4; RUN: llc -mtriple=powerpc64-unknown-unknown \
5; RUN:   < %s 2>&1 | FileCheck %s
6
7define float @bar(ptr %fp) {
8; CHECK-LE-LABEL: bar:
9; CHECK-LE:       # %bb.0: # %entry
10; CHECK-LE-NEXT:    lwz 3, 0(3)
11; CHECK-LE-NEXT:    mtfprd 0, 3
12; CHECK-LE-NEXT:    cmpd 7, 3, 3
13; CHECK-LE-NEXT:    bne- 7, .+4
14; CHECK-LE-NEXT:    isync
15; CHECK-LE-NEXT:    xxsldwi 0, 0, 0, 1
16; CHECK-LE-NEXT:    xscvspdpn 1, 0
17; CHECK-LE-NEXT:    blr
18;
19; CHECK-LABEL: bar:
20; CHECK:       # %bb.0: # %entry
21; CHECK-NEXT:    lwz 3, 0(3)
22; CHECK-NEXT:    cmpd 7, 3, 3
23; CHECK-NEXT:    bne- 7, .+4
24; CHECK-NEXT:    isync
25; CHECK-NEXT:    stw 3, -4(1)
26; CHECK-NEXT:    lfs 1, -4(1)
27; CHECK-NEXT:    blr
28entry:
29  %0 = load atomic float, ptr %fp acquire, align 4
30  ret float %0
31}
32