diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2017-07-13 19:25:18 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2017-07-13 19:25:18 +0000 |
commit | ca089b24d48ef6fa8da2d0bb8c25bb802c4a95c0 (patch) | |
tree | 3a28a772df9b17aef34f49e3c727965ad28c0c93 /test/CodeGen/PowerPC/select-addrRegRegOnly.ll | |
parent | 9df3605dea17e84f8183581f6103bd0c79e2a606 (diff) |
Notes
Diffstat (limited to 'test/CodeGen/PowerPC/select-addrRegRegOnly.ll')
-rw-r--r-- | test/CodeGen/PowerPC/select-addrRegRegOnly.ll | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/test/CodeGen/PowerPC/select-addrRegRegOnly.ll b/test/CodeGen/PowerPC/select-addrRegRegOnly.ll new file mode 100644 index 0000000000000..f880d1faf9d90 --- /dev/null +++ b/test/CodeGen/PowerPC/select-addrRegRegOnly.ll @@ -0,0 +1,37 @@ +; RUN: llc -mcpu=pwr8 -mtriple=powerpc64le-unknown-unknown -verify-machineinstrs < %s | FileCheck %s +; RUN: llc -mcpu=pwr8 -mtriple=powerpc64-unknown-unknown -verify-machineinstrs < %s | FileCheck %s + +; Function Attrs: norecurse nounwind readonly +define float @testSingleAccess(i32* nocapture readonly %arr) local_unnamed_addr #0 { +; CHECK-LABEL: testSingleAccess: +; CHECK: # BB#0: # %entry +; CHECK-NEXT: addi 3, 3, 8 +; CHECK-NEXT: lxsiwax 0, 0, 3 +; CHECK-NEXT: xscvsxdsp 1, 0 +; CHECK-NEXT: blr +entry: + %arrayidx = getelementptr inbounds i32, i32* %arr, i64 2 + %0 = load i32, i32* %arrayidx, align 4 + %conv = sitofp i32 %0 to float + ret float %conv +} + +; Function Attrs: norecurse nounwind readonly +define float @testMultipleAccess(i32* nocapture readonly %arr) local_unnamed_addr #0 { +; CHECK-LABEL: testMultipleAccess: +; CHECK: # BB#0: # %entry +; CHECK-NEXT: lwz 4, 8(3) +; CHECK-NEXT: lwz 12, 12(3) +; CHECK-NEXT: add 3, 12, 4 +; CHECK-NEXT: mtvsrwa 0, 3 +; CHECK-NEXT: xscvsxdsp 1, 0 +; CHECK-NEXT: blr +entry: + %arrayidx = getelementptr inbounds i32, i32* %arr, i64 2 + %0 = load i32, i32* %arrayidx, align 4 + %arrayidx1 = getelementptr inbounds i32, i32* %arr, i64 3 + %1 = load i32, i32* %arrayidx1, align 4 + %add = add nsw i32 %1, %0 + %conv = sitofp i32 %add to float + ret float %conv +} |