[llvm] r205835 - ARM64: add pattern for <1 x i64> custom not node.

Tim Northover tnorthover at apple.com
Tue Apr 8 23:55:39 PDT 2014


Author: tnorthover
Date: Wed Apr  9 01:55:39 2014
New Revision: 205835

URL: http://llvm.org/viewvc/llvm-project?rev=205835&view=rev
Log:
ARM64: add pattern for <1 x i64> custom not node.

This should fix PR19367.

Modified:
    llvm/trunk/lib/Target/ARM64/ARM64InstrInfo.td
    llvm/trunk/test/CodeGen/ARM64/vcmp.ll

Modified: llvm/trunk/lib/Target/ARM64/ARM64InstrInfo.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM64/ARM64InstrInfo.td?rev=205835&r1=205834&r2=205835&view=diff
==============================================================================
--- llvm/trunk/lib/Target/ARM64/ARM64InstrInfo.td (original)
+++ llvm/trunk/lib/Target/ARM64/ARM64InstrInfo.td Wed Apr  9 01:55:39 2014
@@ -2150,6 +2150,7 @@ def : Pat<(ARM64not (v16i8 V128:$Rn)), (
 def : Pat<(ARM64not (v4i16 V64:$Rn)),  (NOTv8i8  V64:$Rn)>;
 def : Pat<(ARM64not (v8i16 V128:$Rn)), (NOTv16i8 V128:$Rn)>;
 def : Pat<(ARM64not (v2i32 V64:$Rn)),  (NOTv8i8  V64:$Rn)>;
+def : Pat<(ARM64not (v1i64 V64:$Rn)),  (NOTv8i8  V64:$Rn)>;
 def : Pat<(ARM64not (v4i32 V128:$Rn)), (NOTv16i8 V128:$Rn)>;
 def : Pat<(ARM64not (v2i64 V128:$Rn)), (NOTv16i8 V128:$Rn)>;
 

Modified: llvm/trunk/test/CodeGen/ARM64/vcmp.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/ARM64/vcmp.ll?rev=205835&r1=205834&r2=205835&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/ARM64/vcmp.ll (original)
+++ llvm/trunk/test/CodeGen/ARM64/vcmp.ll Wed Apr  9 01:55:39 2014
@@ -225,3 +225,12 @@ define <1 x i64> @fcmlt_d(<1 x double> %
   %mask = sext <1 x i1> %tst to <1 x i64>
   ret <1 x i64> %mask
 }
+
+define <1 x i64> @cmnez_d(<1 x i64> %A) nounwind {
+; CHECK-LABEL: cmnez_d:
+; CHECK: cmeq d[[EQ:[0-9]+]], d0, #0
+; CHECK: not.8b v0, v[[EQ]]
+  %tst = icmp ne <1 x i64> %A, zeroinitializer
+  %mask = sext <1 x i1> %tst to <1 x i64>
+  ret <1 x i64> %mask
+}





More information about the llvm-commits mailing list