diff options
Diffstat (limited to 'llvm/test/CodeGen/PowerPC')
| -rw-r--r-- | llvm/test/CodeGen/PowerPC/crsave.ll | 20 | ||||
| -rw-r--r-- | llvm/test/CodeGen/PowerPC/pr26690.ll | 2 |
2 files changed, 21 insertions, 1 deletions
diff --git a/llvm/test/CodeGen/PowerPC/crsave.ll b/llvm/test/CodeGen/PowerPC/crsave.ll index 8121e1b6e63..4975afcce75 100644 --- a/llvm/test/CodeGen/PowerPC/crsave.ll +++ b/llvm/test/CodeGen/PowerPC/crsave.ll @@ -1,5 +1,6 @@ ; RUN: llc -O0 -disable-fp-elim -mtriple=powerpc-unknown-linux-gnu -mcpu=g5 < %s | FileCheck %s -check-prefix=PPC32 ; RUN: llc -O0 -mtriple=powerpc64-unknown-linux-gnu -mcpu=g5 < %s | FileCheck %s -check-prefix=PPC64 +; RUN: llc -O0 -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s -check-prefix=PPC64-ELFv2 declare void @foo() @@ -60,3 +61,22 @@ entry: ; PPC64: mtocrf 16, 12 ; PPC64: mtocrf 8, 12 +; Generate mfocrf in prologue when we need to save 1 nonvolatile CR field +define void @cloberOneNvCrField() { +entry: + tail call void asm sideeffect "# clobbers", "~{cr2}"() + ret void + +; PPC64-ELFv2-LABEL: @cloberOneNvCrField +; PPC64-ELFv2: mfocrf [[REG1:[0-9]+]], 32 +} + +; Generate mfcr in prologue when we need to save all nonvolatile CR field +define void @cloberAllNvCrField() { +entry: + tail call void asm sideeffect "# clobbers", "~{cr2},~{cr3},~{cr4}"() + ret void + +; PPC64-ELFv2-LABEL: @cloberAllNvCrField +; PPC64-ELFv2: mfcr [[REG1:[0-9]+]] +} diff --git a/llvm/test/CodeGen/PowerPC/pr26690.ll b/llvm/test/CodeGen/PowerPC/pr26690.ll index 524e8b524bf..e1c3c496ed4 100644 --- a/llvm/test/CodeGen/PowerPC/pr26690.ll +++ b/llvm/test/CodeGen/PowerPC/pr26690.ll @@ -101,7 +101,7 @@ if.end16: ; preds = %entry, %if.end13, % ret i32 2 } -; CHECK: mfcr {{[0-9]+}} +; CHECK: mfocrf {{[0-9]+}} !llvm.ident = !{!0} |

