[llvm] r305131 - [PowerPC] add memcmp test with one constant operand and equality cmp; NFC
Sanjay Patel via llvm-commits
llvm-commits at lists.llvm.org
Fri Jun 9 16:15:14 PDT 2017
Author: spatel
Date: Fri Jun 9 18:15:14 2017
New Revision: 305131
URL: http://llvm.org/viewvc/llvm-project?rev=305131&view=rev
Log:
[PowerPC] add memcmp test with one constant operand and equality cmp; NFC
Modified:
llvm/trunk/test/CodeGen/PowerPC/memCmpUsedInZeroEqualityComparison.ll
Modified: llvm/trunk/test/CodeGen/PowerPC/memCmpUsedInZeroEqualityComparison.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/PowerPC/memCmpUsedInZeroEqualityComparison.ll?rev=305131&r1=305130&r2=305131&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/PowerPC/memCmpUsedInZeroEqualityComparison.ll (original)
+++ llvm/trunk/test/CodeGen/PowerPC/memCmpUsedInZeroEqualityComparison.ll Fri Jun 9 18:15:14 2017
@@ -166,9 +166,8 @@ define signext i32 @zeroEqualityTest05()
}
; Validate with memcmp()?:
-; Function Attrs: nounwind readonly
-define signext i32 @zeroEqualityTest06() {
-; CHECK-LABEL: zeroEqualityTest06:
+define signext i32 @equalityFoldTwoConstants() {
+; CHECK-LABEL: equalityFoldTwoConstants:
; CHECK: # BB#0: # %loadbb
; CHECK-NEXT: addis 3, 2, .LzeroEqualityTest04.buffer1 at toc@ha
; CHECK-NEXT: addis 4, 2, .LzeroEqualityTest04.buffer2 at toc@ha
@@ -194,6 +193,33 @@ define signext i32 @zeroEqualityTest06()
%not.tobool = icmp eq i32 %call, 0
%cond = zext i1 %not.tobool to i32
ret i32 %cond
+}
+
+define signext i32 @equalityFoldOneConstant(i8* %X) {
+; CHECK-LABEL: equalityFoldOneConstant:
+; CHECK: # BB#0: # %loadbb
+; CHECK-NEXT: addis 4, 2, .LzeroEqualityTest04.buffer1 at toc@ha
+; CHECK-NEXT: ld 5, 0(3)
+; CHECK-NEXT: ld 4, .LzeroEqualityTest04.buffer1 at toc@l(4)
+; CHECK-NEXT: cmpld 4, 5
+; CHECK-NEXT: bne 0, .LBB6_2
+; CHECK-NEXT: # BB#1: # %loadbb1
+; CHECK-NEXT: addis 4, 2, .LzeroEqualityTest04.buffer1 at toc@ha+8
+; CHECK-NEXT: ld 3, 8(3)
+; CHECK-NEXT: ld 4, .LzeroEqualityTest04.buffer1 at toc@l+8(4)
+; CHECK-NEXT: cmpld 4, 3
+; CHECK-NEXT: li 3, 0
+; CHECK-NEXT: beq 0, .LBB6_3
+; CHECK-NEXT: .LBB6_2: # %res_block
+; CHECK-NEXT: li 3, 1
+; CHECK-NEXT: .LBB6_3: # %endblock
+; CHECK-NEXT: cntlzw 3, 3
+; CHECK-NEXT: srwi 3, 3, 5
+; CHECK-NEXT: blr
+ %call = tail call signext i32 @memcmp(i8* bitcast ([15 x i32]* @zeroEqualityTest04.buffer1 to i8*), i8* %X, i64 16)
+ %not.tobool = icmp eq i32 %call, 0
+ %cond = zext i1 %not.tobool to i32
+ ret i32 %cond
}
define i1 @length2_eq_nobuiltin_attr(i8* %X, i8* %Y) {
More information about the llvm-commits
mailing list