[PATCH] D43282: [LegalizeDAG] Fix legalization of SETCC

Mikhail Maltsev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Feb 16 01:37:33 PST 2018


This revision was automatically updated to reflect the committed changes.
Closed by commit rL325325: [LegalizeDAG] Fix legalization of SETCC (authored by miyuki, committed by ).

Changed prior to commit:
  https://reviews.llvm.org/D43282?vs=134188&id=134568#toc

Repository:
  rL LLVM

https://reviews.llvm.org/D43282

Files:
  llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
  llvm/trunk/test/CodeGen/ARM/2018-02-13-PR36079.ll


Index: llvm/trunk/test/CodeGen/ARM/2018-02-13-PR36079.ll
===================================================================
--- llvm/trunk/test/CodeGen/ARM/2018-02-13-PR36079.ll
+++ llvm/trunk/test/CodeGen/ARM/2018-02-13-PR36079.ll
@@ -0,0 +1,23 @@
+; RUN: llc -mtriple=arm-eabi -mattr=+neon < %s -o - | FileCheck %s
+
+ at c = global [4 x i32] [i32 3, i32 3, i32 3, i32 3], align 4
+ at d = common global i32 0, align 4
+
+define void @foo() local_unnamed_addr nounwind norecurse {
+entry:
+  %0 = load <4 x i32>, <4 x i32>* bitcast ([4 x i32]* @c to <4 x i32>*), align 4
+  %1 = and <4 x i32> %0,
+           <i32 1,
+            i32 zext (i1 icmp ne (i32* getelementptr inbounds ([4 x i32], [4 x i32]* @c, i32 0, i32 1), i32* @d) to i32),
+            i32 zext (i1 icmp ne (i32* getelementptr inbounds ([4 x i32], [4 x i32]* @c, i32 0, i32 2), i32* @d) to i32),
+            i32 zext (i1 icmp ne (i32* getelementptr inbounds ([4 x i32], [4 x i32]* @c, i32 0, i32 3), i32* @d) to i32)>
+  store <4 x i32> %1, <4 x i32>* bitcast ([4 x i32]* @c to <4 x i32>*), align 4
+  ret void
+; CHECK-NOT: mvnne
+; CHECK: movne r{{[0-9]+}}, #1
+; CHECK-NOT: mvnne
+; CHECK: movne r{{[0-9]+}}, #1
+; CHECK-NOT: mvnne
+; CHECK: movne r{{[0-9]+}}, #1
+; CHECK-NOT: mvnne
+}
Index: llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
===================================================================
--- llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
+++ llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
@@ -3766,7 +3766,7 @@
     // illegal; expand it into a SELECT_CC.
     EVT VT = Node->getValueType(0);
     int TrueValue;
-    switch (TLI.getBooleanContents(Tmp1->getValueType(0))) {
+    switch (TLI.getBooleanContents(Tmp1.getValueType())) {
     case TargetLowering::ZeroOrOneBooleanContent:
     case TargetLowering::UndefinedBooleanContent:
       TrueValue = 1;


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D43282.134568.patch
Type: text/x-patch
Size: 1864 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180216/8e5c589b/attachment.bin>


More information about the llvm-commits mailing list