[llvm] r288183 - [AArch64] add tests for bics; NFC

Sanjay Patel via llvm-commits llvm-commits at lists.llvm.org
Tue Nov 29 11:15:27 PST 2016


Author: spatel
Date: Tue Nov 29 13:15:27 2016
New Revision: 288183

URL: http://llvm.org/viewvc/llvm-project?rev=288183&view=rev
Log:
[AArch64] add tests for bics; NFC

Added:
    llvm/trunk/test/CodeGen/AArch64/bics.ll

Added: llvm/trunk/test/CodeGen/AArch64/bics.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/bics.ll?rev=288183&view=auto
==============================================================================
--- llvm/trunk/test/CodeGen/AArch64/bics.ll (added)
+++ llvm/trunk/test/CodeGen/AArch64/bics.ll Tue Nov 29 13:15:27 2016
@@ -0,0 +1,44 @@
+; RUN: llc < %s -mtriple=aarch64-unknown-unknown | FileCheck %s
+
+define i1 @andn_cmp(i32 %x, i32 %y) {
+; CHECK-LABEL: andn_cmp:
+; CHECK:       // BB#0:
+; CHECK-NEXT:    bics wzr, w1, w0
+; CHECK-NEXT:    cset w0, eq
+; CHECK-NEXT:    ret
+;
+  %notx = xor i32 %x, -1
+  %and = and i32 %notx, %y
+  %cmp = icmp eq i32 %and, 0
+  ret i1 %cmp
+}
+
+; FIXME: Recognize a disguised bics.
+
+define i1 @and_cmp(i32 %x, i32 %y) {
+; CHECK-LABEL: and_cmp:
+; CHECK:       // BB#0:
+; CHECK-NEXT:    and w8, w0, w1
+; CHECK-NEXT:    cmp w8, w1
+; CHECK-NEXT:    cset w0, eq
+; CHECK-NEXT:    ret
+;
+  %and = and i32 %x, %y
+  %cmp = icmp eq i32 %and, %y
+  ret i1 %cmp
+}
+
+define i1 @and_cmp_const(i32 %x) {
+; CHECK-LABEL: and_cmp_const:
+; CHECK:       // BB#0:
+; CHECK-NEXT:    mov w8, #43
+; CHECK-NEXT:    and w8, w0, w8
+; CHECK-NEXT:    cmp w8, #43
+; CHECK-NEXT:    cset w0, eq
+; CHECK-NEXT:    ret
+;
+  %and = and i32 %x, 43
+  %cmp = icmp eq i32 %and, 43
+  ret i1 %cmp
+}
+




More information about the llvm-commits mailing list