[PATCH] D37858: [X86] Don't create i64 constants on 32-bit targets when lowering v64i1 constant build vectors
Craig Topper via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Sep 15 09:58:13 PDT 2017
craig.topper added inline comments.
================
Comment at: lib/Target/X86/X86ISelLowering.cpp:7029
+ Upper = LowerBUILD_VECTORvXi1(Upper, DAG);
+ return DAG.getNode(ISD::CONCAT_VECTORS, dl, MVT::v64i1, Lower, Upper);
+ }
----------------
RKSimon wrote:
> 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.
I think that will also end up calling getNode with a CONCAT_VECTOR of two BUILD_VECTORS. Since extractSubvector knows to look through BUILD_VECTORS.
================
Comment at: test/CodeGen/X86/pr34605.ll:4
+
+ at a = common local_unnamed_addr global [512 x i8] zeroinitializer, align 1
+
----------------
RKSimon wrote:
> Is this used in the test? I couldn't see it.
Removed.
================
Comment at: test/CodeGen/X86/pr34605.ll:6
+
+define void @pr34605(i8* nocapture %s, i32 %p, i32 %len) {
+; CHECK-LABEL: pr34605:
----------------
RKSimon wrote:
> Is %len used in the test? I couldn't see it.
Removed
https://reviews.llvm.org/D37858
More information about the llvm-commits
mailing list