[PATCH] D37858: [X86] Don't create i64 constants on 32-bit targets when lowering v64i1 constant build vectors

Simon Pilgrim via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Sep 15 03:17:42 PDT 2017


RKSimon accepted this revision.
RKSimon added a comment.
This revision is now accepted and ready to land.

LGTM with some minor observations.



================
Comment at: lib/Target/X86/X86ISelLowering.cpp:7029
+      Upper = LowerBUILD_VECTORvXi1(Upper, DAG);
+      return DAG.getNode(ISD::CONCAT_VECTORS, dl, MVT::v64i1, Lower, Upper);
+    }
----------------
Not sure if it'll work but can you re-use LowerVectorIntUnary to do this? We seem to have a lot of 'split+2*op+concat' patterns/helpers.


================
Comment at: test/CodeGen/X86/pr34605.ll:4
+
+ at a = common local_unnamed_addr global [512 x i8] zeroinitializer, align 1
+
----------------
Is this used in the test? I couldn't see it.


================
Comment at: test/CodeGen/X86/pr34605.ll:6
+
+define void @pr34605(i8* nocapture %s, i32 %p, i32 %len) {
+; CHECK-LABEL: pr34605:
----------------
Is %len used in the test? I couldn't see it.


https://reviews.llvm.org/D37858





More information about the llvm-commits mailing list