summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/PowerPC/memCmpUsedInZeroEqualityComparison.ll
diff options
context:
space:
mode:
authorSanjay Patel <spatel@rotateright.com>2017-06-08 19:47:25 +0000
committerSanjay Patel <spatel@rotateright.com>2017-06-08 19:47:25 +0000
commit5e370850d451bf78c1f393ec9e3cdabb2a050b40 (patch)
treec2f991e74850eac47f37eaa0aae63c052c272d22 /llvm/test/CodeGen/PowerPC/memCmpUsedInZeroEqualityComparison.ll
parent3271d3704a5dc3b5079f5ae1aba24e4c55c3908d (diff)
downloadbcm5719-llvm-5e370850d451bf78c1f393ec9e3cdabb2a050b40.tar.gz
bcm5719-llvm-5e370850d451bf78c1f393ec9e3cdabb2a050b40.zip
[CGP] don't expand a memcmp with nobuiltin attribute
This matches the behavior used in the SDAG when expanding memcmp. For reference, we're intentionally treating the earlier fortified call transforms differently after: https://bugs.llvm.org/show_bug.cgi?id=23093 https://reviews.llvm.org/rL233776 One motivation for not transforming nobuiltin calls is that it can interfere with sanitizers: https://reviews.llvm.org/D19781 https://reviews.llvm.org/D19801 Differential Revision: https://reviews.llvm.org/D34043 llvm-svn: 305007
Diffstat (limited to 'llvm/test/CodeGen/PowerPC/memCmpUsedInZeroEqualityComparison.ll')
-rw-r--r--llvm/test/CodeGen/PowerPC/memCmpUsedInZeroEqualityComparison.ll21
1 files changed, 15 insertions, 6 deletions
diff --git a/llvm/test/CodeGen/PowerPC/memCmpUsedInZeroEqualityComparison.ll b/llvm/test/CodeGen/PowerPC/memCmpUsedInZeroEqualityComparison.ll
index d6ce5688c66..9e5a31d00b6 100644
--- a/llvm/test/CodeGen/PowerPC/memCmpUsedInZeroEqualityComparison.ll
+++ b/llvm/test/CodeGen/PowerPC/memCmpUsedInZeroEqualityComparison.ll
@@ -199,12 +199,21 @@ define signext i32 @zeroEqualityTest06() {
define i1 @length2_eq_nobuiltin_attr(i8* %X, i8* %Y) {
; CHECK-LABEL: length2_eq_nobuiltin_attr:
; CHECK: # BB#0:
-; CHECK-NEXT: lhz 3, 0(3)
-; CHECK-NEXT: lhz 4, 0(4)
-; CHECK-NEXT: li 5, 0
-; CHECK-NEXT: li 12, 1
-; CHECK-NEXT: cmpw 3, 4
-; CHECK-NEXT: isel 3, 12, 5, 2
+; CHECK-NEXT: mflr 0
+; CHECK-NEXT: std 0, 16(1)
+; CHECK-NEXT: stdu 1, -32(1)
+; CHECK-NEXT: .Lcfi0:
+; CHECK-NEXT: .cfi_def_cfa_offset 32
+; CHECK-NEXT: .Lcfi1:
+; CHECK-NEXT: .cfi_offset lr, 16
+; CHECK-NEXT: li 5, 2
+; CHECK-NEXT: bl memcmp
+; CHECK-NEXT: nop
+; CHECK-NEXT: cntlzw 3, 3
+; CHECK-NEXT: rlwinm 3, 3, 27, 31, 31
+; CHECK-NEXT: addi 1, 1, 32
+; CHECK-NEXT: ld 0, 16(1)
+; CHECK-NEXT: mtlr 0
; CHECK-NEXT: blr
%m = tail call signext i32 @memcmp(i8* %X, i8* %Y, i64 2) nobuiltin
%c = icmp eq i32 %m, 0
OpenPOWER on IntegriCloud