[llvm] r237537 - AVX-512: fixed extended load to 512-bit register
Elena Demikhovsky
elena.demikhovsky at intel.com
Sun May 17 01:08:06 PDT 2015
Author: delena
Date: Sun May 17 03:08:06 2015
New Revision: 237537
URL: http://llvm.org/viewvc/llvm-project?rev=237537&view=rev
Log:
AVX-512: fixed extended load to 512-bit register
Modified:
llvm/trunk/lib/Target/X86/X86ISelLowering.cpp
llvm/trunk/test/CodeGen/X86/avx512-trunc-ext.ll
Modified: llvm/trunk/lib/Target/X86/X86ISelLowering.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp?rev=237537&r1=237536&r2=237537&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (original)
+++ llvm/trunk/lib/Target/X86/X86ISelLowering.cpp Sun May 17 03:08:06 2015
@@ -14022,8 +14022,8 @@ static SDValue LowerExtendedLoad(SDValue
"Can only lower sext loads with a single scalar load!");
unsigned loadRegZize = RegSz;
- if (Ext == ISD::SEXTLOAD && RegSz == 256)
- loadRegZize /= 2;
+ if (Ext == ISD::SEXTLOAD && RegSz >= 256)
+ loadRegZize = 128;
// Represent our vector as a sequence of elements which are the
// largest scalar that we can load.
Modified: llvm/trunk/test/CodeGen/X86/avx512-trunc-ext.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/avx512-trunc-ext.ll?rev=237537&r1=237536&r2=237537&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/avx512-trunc-ext.ll (original)
+++ llvm/trunk/test/CodeGen/X86/avx512-trunc-ext.ll Sun May 17 03:08:06 2015
@@ -193,3 +193,13 @@ define <8 x i64> @sext_8i1_8i64(<8 x i32
%y = sext <8 x i1> %x to <8 x i64>
ret <8 x i64> %y
}
+
+; CHECK-LABEL: @extload_v8i64
+; CHECK: vpmovsxbq
+define void @extload_v8i64(<8 x i8>* %a, <8 x i64>* %res) {
+ %sign_load = load <8 x i8>, <8 x i8>* %a
+ %c = sext <8 x i8> %sign_load to <8 x i64>
+ store <8 x i64> %c, <8 x i64>* %res
+ ret void
+}
+
More information about the llvm-commits
mailing list