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