summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/PowerPC
diff options
context:
space:
mode:
authorPiotr Sobczak <piotr.sobczak@amd.com>2019-04-05 07:44:09 +0000
committerPiotr Sobczak <piotr.sobczak@amd.com>2019-04-05 07:44:09 +0000
commit0376ac1d946466eb346c2055554153e11b0fc3cf (patch)
treea9e134c70ee7634941c786dd42ef32e5d0fb12c6 /llvm/test/CodeGen/PowerPC
parent94cd06676349f034f005b3284fc161d96baadbea (diff)
downloadbcm5719-llvm-0376ac1d946466eb346c2055554153e11b0fc3cf.tar.gz
bcm5719-llvm-0376ac1d946466eb346c2055554153e11b0fc3cf.zip
[SelectionDAG] Compute known bits of CopyFromReg
Summary: Teach SelectionDAG how to compute known bits of ISD::CopyFromReg if the virtual reg used has one def only. This can be particularly useful when calling isBaseWithConstantOffset() with the ISD::CopyFromReg argument, as more optimizations may get enabled in the result. Also add a missing truncation on X86, found by testing of this patch. Change-Id: Id1c9fceec862d118c54a5b53adf72ada5d6daefa Reviewers: bogner, craig.topper, RKSimon Reviewed By: RKSimon Subscribers: lebedev.ri, nemanjai, jvesely, nhaehnle, javed.absar, jsji, jdoerfert, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D59535 llvm-svn: 357745
Diffstat (limited to 'llvm/test/CodeGen/PowerPC')
-rw-r--r--llvm/test/CodeGen/PowerPC/pr35688.ll16
1 files changed, 7 insertions, 9 deletions
diff --git a/llvm/test/CodeGen/PowerPC/pr35688.ll b/llvm/test/CodeGen/PowerPC/pr35688.ll
index 098573ec1b0..7573e871ef4 100644
--- a/llvm/test/CodeGen/PowerPC/pr35688.ll
+++ b/llvm/test/CodeGen/PowerPC/pr35688.ll
@@ -6,16 +6,14 @@
; Function Attrs: nounwind
define void @ec_GFp_nistp256_points_mul() {
; CHECK-LABEL: ec_GFp_nistp256_points_mul:
-; CHECK: ld 5, 0(3)
-; CHECK: li 3, 127
-; CHECK: li 4, 0
-; CHECK: subfic 6, 5, 0
-; CHECK: subfze 6, 4
-; CHECK: sradi 7, 6, 63
-; CHECK: srad 6, 6, 3
-; CHECK: subfc 5, 5, 7
-; CHECK: subfe 5, 4, 6
+; CHECK: ld 4, 0(3)
+; CHECK: li 3, 0
+; CHECK: subfic 5, 4, 0
+; CHECK: subfze 5, 3
; CHECK: sradi 5, 5, 63
+; CHECK: subfc 4, 4, 5
+; CHECK: subfe 4, 3, 5
+; CHECK: sradi 4, 4, 63
; With MemorySSA, everything is taken out of the loop by licm.
; Loads and stores to undef are treated as non-aliasing.
OpenPOWER on IntegriCloud