[llvm] r324408 - [x86] add tests to show demanded bits shortcoming; NFC

Sanjay Patel via llvm-commits llvm-commits at lists.llvm.org
Tue Feb 6 13:43:57 PST 2018


Author: spatel
Date: Tue Feb  6 13:43:57 2018
New Revision: 324408

URL: http://llvm.org/viewvc/llvm-project?rev=324408&view=rev
Log:
[x86] add tests to show demanded bits shortcoming; NFC

Modified:
    llvm/trunk/test/CodeGen/X86/zext-demanded.ll

Modified: llvm/trunk/test/CodeGen/X86/zext-demanded.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/zext-demanded.ll?rev=324408&r1=324407&r2=324408&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/zext-demanded.ll (original)
+++ llvm/trunk/test/CodeGen/X86/zext-demanded.ll Tue Feb  6 13:43:57 2018
@@ -97,3 +97,45 @@ define i32 @test8(i32 %x) {
   %z = or i32 %y, 1
   ret i32 %z
 }
+
+define i64 @add_neg_one(i64 %x) {
+; CHECK-LABEL: add_neg_one:
+; CHECK:       # %bb.0:
+; CHECK-NEXT:    leal 65535(%rdi), %eax
+; CHECK-NEXT:    andl %edi, %eax
+; CHECK-NEXT:    movzwl %ax, %eax
+; CHECK-NEXT:    retq
+  %a1 = and i64 %x, 65535
+  %a2 = add i64 %x, 65535
+  %r = and i64 %a1, %a2
+  ret i64 %r
+}
+
+define i64 @sub_neg_one(i64 %x) {
+; CHECK-LABEL: sub_neg_one:
+; CHECK:       # %bb.0:
+; CHECK-NEXT:    leal -65535(%rdi), %eax
+; CHECK-NEXT:    andl %edi, %eax
+; CHECK-NEXT:    movzwl %ax, %eax
+; CHECK-NEXT:    retq
+  %a1 = and i64 %x, 65535
+  %a2 = sub i64 %x, 65535
+  %r = and i64 %a1, %a2
+  ret i64 %r
+}
+
+define i64 @mul_neg_one(i64 %x) {
+; CHECK-LABEL: mul_neg_one:
+; CHECK:       # %bb.0:
+; CHECK-NEXT:    movl %edi, %eax
+; CHECK-NEXT:    shll $16, %eax
+; CHECK-NEXT:    subl %edi, %eax
+; CHECK-NEXT:    andl %edi, %eax
+; CHECK-NEXT:    movzwl %ax, %eax
+; CHECK-NEXT:    retq
+  %a1 = and i64 %x, 65535
+  %a2 = mul i64 %x, 65535
+  %r = and i64 %a1, %a2
+  ret i64 %r
+}
+




More information about the llvm-commits mailing list