[llvm] r251285 - AVX-512: Use correct extract vector length.
Igor Breger via llvm-commits
llvm-commits at lists.llvm.org
Mon Oct 26 05:26:34 PDT 2015
Author: ibreger
Date: Mon Oct 26 07:26:34 2015
New Revision: 251285
URL: http://llvm.org/viewvc/llvm-project?rev=251285&view=rev
Log:
AVX-512: Use correct extract vector length.
Bug https://llvm.org/bugs/show_bug.cgi?id=25318
Differential Revision: http://reviews.llvm.org/D14062
Modified:
llvm/trunk/lib/Target/X86/X86InstrAVX512.td
llvm/trunk/test/CodeGen/X86/vector-shuffle-512-v16.ll
Modified: llvm/trunk/lib/Target/X86/X86InstrAVX512.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrAVX512.td?rev=251285&r1=251284&r2=251285&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86InstrAVX512.td (original)
+++ llvm/trunk/lib/Target/X86/X86InstrAVX512.td Mon Oct 26 07:26:34 2015
@@ -739,7 +739,7 @@ defm : vextract_for_size_lowering<"VEXTR
vextract128_extract, EXTRACT_get_vextract128_imm, [HasAVX512, NoDQI]>;
defm : vextract_for_size_lowering<"VEXTRACTF64x4Z", v16f32_info, v8f32x_info,
- vextract128_extract, EXTRACT_get_vextract128_imm, [HasAVX512, NoDQI]>;
+ vextract256_extract, EXTRACT_get_vextract256_imm, [HasAVX512, NoDQI]>;
defm : vextract_for_size_lowering<"VEXTRACTI64x4Z", v16i32_info, v8i32x_info,
vextract256_extract, EXTRACT_get_vextract256_imm, [HasAVX512, NoDQI]>;
Modified: llvm/trunk/test/CodeGen/X86/vector-shuffle-512-v16.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/vector-shuffle-512-v16.ll?rev=251285&r1=251284&r2=251285&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/vector-shuffle-512-v16.ll (original)
+++ llvm/trunk/test/CodeGen/X86/vector-shuffle-512-v16.ll Mon Oct 26 07:26:34 2015
@@ -120,3 +120,14 @@ define <16 x i32> @shuffle_v16i32_0_1_2_
ret <16 x i32> %c
}
+define <8 x float> @shuffle_v16f32_extract_256(float* %RET, float* %a) {
+; ALL-LABEL: shuffle_v16f32_extract_256:
+; ALL: # BB#0:
+; ALL-NEXT: vmovups (%rsi), %zmm0
+; ALL-NEXT: vextractf64x4 $1, %zmm0, %ymm0
+; ALL-NEXT: retq
+ %ptr_a = bitcast float* %a to <16 x float>*
+ %v_a = load <16 x float>, <16 x float>* %ptr_a, align 4
+ %v2 = shufflevector <16 x float> %v_a, <16 x float> undef, <8 x i32> <i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
+ ret <8 x float> %v2
+}
More information about the llvm-commits
mailing list