[llvm] r276394 - [AVX512] Add ExeDomain to vector extend and truncate instructions.
Craig Topper via llvm-commits
llvm-commits at lists.llvm.org
Thu Jul 21 22:46:44 PDT 2016
Author: ctopper
Date: Fri Jul 22 00:46:44 2016
New Revision: 276394
URL: http://llvm.org/viewvc/llvm-project?rev=276394&view=rev
Log:
[AVX512] Add ExeDomain to vector extend and truncate instructions.
Modified:
llvm/trunk/lib/Target/X86/X86InstrAVX512.td
llvm/trunk/test/CodeGen/X86/avx512-ext.ll
llvm/trunk/test/CodeGen/X86/avx512-mask-op.ll
llvm/trunk/test/CodeGen/X86/avx512-trunc.ll
llvm/trunk/test/CodeGen/X86/masked_memop.ll
llvm/trunk/test/CodeGen/X86/pmul.ll
llvm/trunk/test/CodeGen/X86/vector-compare-results.ll
llvm/trunk/test/CodeGen/X86/vector-lzcnt-256.ll
llvm/trunk/test/CodeGen/X86/vector-lzcnt-512.ll
llvm/trunk/test/CodeGen/X86/vector-sext.ll
llvm/trunk/test/CodeGen/X86/vector-trunc-math.ll
llvm/trunk/test/CodeGen/X86/vector-trunc.ll
Modified: llvm/trunk/lib/Target/X86/X86InstrAVX512.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrAVX512.td?rev=276394&r1=276393&r2=276394&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86InstrAVX512.td (original)
+++ llvm/trunk/lib/Target/X86/X86InstrAVX512.td Fri Jul 22 00:46:44 2016
@@ -6307,7 +6307,7 @@ defm VRNDSCALESD : avx512_rndscale_scala
multiclass avx512_trunc_common<bits<8> opc, string OpcodeStr, SDNode OpNode,
X86VectorVTInfo SrcInfo, X86VectorVTInfo DestInfo,
X86MemOperand x86memop> {
-
+ let ExeDomain = DestInfo.ExeDomain in
defm rr : AVX512_maskable<opc, MRMDestReg, DestInfo, (outs DestInfo.RC:$dst),
(ins SrcInfo.RC:$src1), OpcodeStr ,"$src1", "$src1",
(DestInfo.VT (OpNode (SrcInfo.VT SrcInfo.RC:$src1)))>,
@@ -6333,7 +6333,8 @@ multiclass avx512_trunc_common<bits<8> o
DestInfo.KRCWM:$mask ,
SrcInfo.RC:$src1)>;
- let mayStore = 1, mayLoad = 1, hasSideEffects = 0 in {
+ let mayStore = 1, mayLoad = 1, hasSideEffects = 0,
+ ExeDomain = DestInfo.ExeDomain in {
def mr : AVX512XS8I<opc, MRMDestMem, (outs),
(ins x86memop:$dst, SrcInfo.RC:$src),
OpcodeStr # "\t{$src, $dst|$dst, $src}",
@@ -6536,6 +6537,7 @@ def: Pat<(v16i8 (X86vtrunc (v16i16 VR256
multiclass avx512_extend_common<bits<8> opc, string OpcodeStr,
X86VectorVTInfo DestInfo, X86VectorVTInfo SrcInfo,
X86MemOperand x86memop, PatFrag LdFrag, SDPatternOperator OpNode>{
+ let ExeDomain = DestInfo.ExeDomain in {
defm rr : AVX512_maskable<opc, MRMSrcReg, DestInfo, (outs DestInfo.RC:$dst),
(ins SrcInfo.RC:$src), OpcodeStr ,"$src", "$src",
(DestInfo.VT (OpNode (SrcInfo.VT SrcInfo.RC:$src)))>,
@@ -6545,6 +6547,7 @@ multiclass avx512_extend_common<bits<8>
(ins x86memop:$src), OpcodeStr ,"$src", "$src",
(DestInfo.VT (LdFrag addr:$src))>,
EVEX;
+ }
}
multiclass avx512_extend_BW<bits<8> opc, string OpcodeStr,
Modified: llvm/trunk/test/CodeGen/X86/avx512-ext.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/avx512-ext.ll?rev=276394&r1=276393&r2=276394&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/avx512-ext.ll (original)
+++ llvm/trunk/test/CodeGen/X86/avx512-ext.ll Fri Jul 22 00:46:44 2016
@@ -1961,8 +1961,8 @@ define <32 x i8> @zext_32xi1_to_32xi8(<3
; KNL-NEXT: vpcmpeqw %ymm3, %ymm1, %ymm1
; KNL-NEXT: vpmovsxwd %ymm1, %zmm1
; KNL-NEXT: vpmovdb %zmm1, %xmm1
-; KNL-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm0
-; KNL-NEXT: vandps {{.*}}(%rip), %ymm0, %ymm0
+; KNL-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm0
+; KNL-NEXT: vpand {{.*}}(%rip), %ymm0, %ymm0
; KNL-NEXT: retq
;
; SKX-LABEL: zext_32xi1_to_32xi8:
Modified: llvm/trunk/test/CodeGen/X86/avx512-mask-op.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/avx512-mask-op.ll?rev=276394&r1=276393&r2=276394&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/avx512-mask-op.ll (original)
+++ llvm/trunk/test/CodeGen/X86/avx512-mask-op.ll Fri Jul 22 00:46:44 2016
@@ -532,7 +532,7 @@ define <64 x i8> @test16(i64 %x) {
; KNL-NEXT: vpmovdb %zmm1, %xmm1
; KNL-NEXT: vmovdqa32 %zmm0, %zmm0 {%k2} {z}
; KNL-NEXT: vpmovdb %zmm0, %xmm0
-; KNL-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm1
+; KNL-NEXT: vinserti128 $1, %xmm0, %ymm1, %ymm1
; KNL-NEXT: vpsllw $7, %ymm2, %ymm0
; KNL-NEXT: vpand {{.*}}(%rip), %ymm0, %ymm0
; KNL-NEXT: vpxor %ymm2, %ymm2, %ymm2
@@ -596,7 +596,7 @@ define <64 x i8> @test17(i64 %x, i32 %y,
; KNL-NEXT: vpmovdb %zmm2, %xmm2
; KNL-NEXT: vmovdqa32 %zmm1, %zmm1 {%k2} {z}
; KNL-NEXT: vpmovdb %zmm1, %xmm1
-; KNL-NEXT: vinsertf128 $1, %xmm1, %ymm2, %ymm1
+; KNL-NEXT: vinserti128 $1, %xmm1, %ymm2, %ymm1
; KNL-NEXT: movq %rbp, %rsp
; KNL-NEXT: popq %rbp
; KNL-NEXT: retq
@@ -1479,12 +1479,12 @@ define <64 x i8> @load_64i1(<64 x i1>* %
; KNL-NEXT: vpmovdb %zmm0, %xmm0
; KNL-NEXT: vmovdqa32 %zmm1, %zmm2 {%k2} {z}
; KNL-NEXT: vpmovdb %zmm2, %xmm2
-; KNL-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0
+; KNL-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm0
; KNL-NEXT: vmovdqa32 %zmm1, %zmm2 {%k3} {z}
; KNL-NEXT: vpmovdb %zmm2, %xmm2
; KNL-NEXT: vmovdqa32 %zmm1, %zmm1 {%k4} {z}
; KNL-NEXT: vpmovdb %zmm1, %xmm1
-; KNL-NEXT: vinsertf128 $1, %xmm1, %ymm2, %ymm1
+; KNL-NEXT: vinserti128 $1, %xmm1, %ymm2, %ymm1
; KNL-NEXT: retq
;
; SKX-LABEL: load_64i1:
@@ -1560,7 +1560,7 @@ define void @store_16i1(<16 x i1>* %a, <
define void @store_32i1(<32 x i1>* %a, <32 x i1> %v) {
; KNL-LABEL: store_32i1:
; KNL: ## BB#0:
-; KNL-NEXT: vextractf128 $1, %ymm0, %xmm1
+; KNL-NEXT: vextracti128 $1, %ymm0, %xmm1
; KNL-NEXT: vpmovsxbd %xmm1, %zmm1
; KNL-NEXT: vpslld $31, %zmm1, %zmm1
; KNL-NEXT: vptestmd %zmm1, %zmm1, %k0
Modified: llvm/trunk/test/CodeGen/X86/avx512-trunc.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/avx512-trunc.ll?rev=276394&r1=276393&r2=276394&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/avx512-trunc.ll (original)
+++ llvm/trunk/test/CodeGen/X86/avx512-trunc.ll Fri Jul 22 00:46:44 2016
@@ -226,7 +226,7 @@ define void @trunc_qd_256_mem(<4 x i64>
; KNL: ## BB#0:
; KNL-NEXT: ## kill: %YMM0<def> %YMM0<kill> %ZMM0<def>
; KNL-NEXT: vpmovqd %zmm0, %ymm0
-; KNL-NEXT: vmovaps %xmm0, (%rdi)
+; KNL-NEXT: vmovdqa %xmm0, (%rdi)
; KNL-NEXT: retq
;
; SKX-LABEL: trunc_qd_256_mem:
@@ -379,7 +379,7 @@ define void @trunc_dw_256_mem(<8 x i32>
; KNL: ## BB#0:
; KNL-NEXT: ## kill: %YMM0<def> %YMM0<kill> %ZMM0<def>
; KNL-NEXT: vpmovdw %zmm0, %ymm0
-; KNL-NEXT: vmovaps %xmm0, (%rdi)
+; KNL-NEXT: vmovdqa %xmm0, (%rdi)
; KNL-NEXT: retq
;
; SKX-LABEL: trunc_dw_256_mem:
@@ -414,7 +414,7 @@ define <32 x i8> @trunc_wb_512(<32 x i16
; KNL-NEXT: vpmovdb %zmm0, %xmm0
; KNL-NEXT: vpmovsxwd %ymm1, %zmm1
; KNL-NEXT: vpmovdb %zmm1, %xmm1
-; KNL-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm0
+; KNL-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm0
; KNL-NEXT: retq
;
; SKX-LABEL: trunc_wb_512:
@@ -432,8 +432,8 @@ define void @trunc_wb_512_mem(<32 x i16>
; KNL-NEXT: vpmovdb %zmm0, %xmm0
; KNL-NEXT: vpmovsxwd %ymm1, %zmm1
; KNL-NEXT: vpmovdb %zmm1, %xmm1
-; KNL-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm0
-; KNL-NEXT: vmovaps %ymm0, (%rdi)
+; KNL-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm0
+; KNL-NEXT: vmovdqa %ymm0, (%rdi)
; KNL-NEXT: retq
;
; SKX-LABEL: trunc_wb_512_mem:
@@ -465,7 +465,7 @@ define void @trunc_wb_256_mem(<16 x i16>
; KNL: ## BB#0:
; KNL-NEXT: vpmovsxwd %ymm0, %zmm0
; KNL-NEXT: vpmovdb %zmm0, %xmm0
-; KNL-NEXT: vmovaps %xmm0, (%rdi)
+; KNL-NEXT: vmovdqa %xmm0, (%rdi)
; KNL-NEXT: retq
;
; SKX-LABEL: trunc_wb_256_mem:
Modified: llvm/trunk/test/CodeGen/X86/masked_memop.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/masked_memop.ll?rev=276394&r1=276393&r2=276394&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/masked_memop.ll (original)
+++ llvm/trunk/test/CodeGen/X86/masked_memop.ll Fri Jul 22 00:46:44 2016
@@ -2191,7 +2191,7 @@ define <32 x double> @test_load_32f64(<3
;
; AVX512F-LABEL: test_load_32f64:
; AVX512F: ## BB#0:
-; AVX512F-NEXT: vextractf128 $1, %ymm0, %xmm5
+; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm5
; AVX512F-NEXT: vpmovsxbd %xmm5, %zmm5
; AVX512F-NEXT: vpslld $31, %zmm5, %zmm5
; AVX512F-NEXT: vptestmd %zmm5, %zmm5, %k1
Modified: llvm/trunk/test/CodeGen/X86/pmul.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/pmul.ll?rev=276394&r1=276393&r2=276394&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/pmul.ll (original)
+++ llvm/trunk/test/CodeGen/X86/pmul.ll Fri Jul 22 00:46:44 2016
@@ -492,12 +492,12 @@ define <32 x i8> @mul_v32i8c(<32 x i8> %
; AVX512F-NEXT: vpmullw %ymm2, %ymm0, %ymm0
; AVX512F-NEXT: vpmovsxwd %ymm0, %zmm0
; AVX512F-NEXT: vpmovdb %zmm0, %xmm0
-; AVX512F-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm0
+; AVX512F-NEXT: vinserti128 $1, %xmm0, %ymm1, %ymm0
; AVX512F-NEXT: retq
;
; AVX512BW-LABEL: mul_v32i8c:
; AVX512BW: # BB#0: # %entry
-; AVX512BW-NEXT: vmovaps {{.*#+}} ymm1 = [117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117]
+; AVX512BW-NEXT: vmovdqa {{.*#+}} ymm1 = [117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117]
; AVX512BW-NEXT: vpmovsxbw %ymm1, %zmm1
; AVX512BW-NEXT: vpmovsxbw %ymm0, %zmm0
; AVX512BW-NEXT: vpmullw %zmm1, %zmm0, %zmm0
@@ -693,7 +693,7 @@ define <32 x i8> @mul_v32i8(<32 x i8> %i
; AVX512F-NEXT: vpmullw %ymm1, %ymm0, %ymm0
; AVX512F-NEXT: vpmovsxwd %ymm0, %zmm0
; AVX512F-NEXT: vpmovdb %zmm0, %xmm0
-; AVX512F-NEXT: vinsertf128 $1, %xmm0, %ymm2, %ymm0
+; AVX512F-NEXT: vinserti128 $1, %xmm0, %ymm2, %ymm0
; AVX512F-NEXT: retq
;
; AVX512BW-LABEL: mul_v32i8:
@@ -938,7 +938,7 @@ define <64 x i8> @mul_v64i8c(<64 x i8> %
; AVX512F-NEXT: vpmullw %ymm3, %ymm0, %ymm0
; AVX512F-NEXT: vpmovsxwd %ymm0, %zmm0
; AVX512F-NEXT: vpmovdb %zmm0, %xmm0
-; AVX512F-NEXT: vinsertf128 $1, %xmm0, %ymm2, %ymm0
+; AVX512F-NEXT: vinserti128 $1, %xmm0, %ymm2, %ymm0
; AVX512F-NEXT: vpmovsxbw %xmm1, %ymm2
; AVX512F-NEXT: vpmullw %ymm3, %ymm2, %ymm2
; AVX512F-NEXT: vpmovsxwd %ymm2, %zmm2
@@ -948,12 +948,12 @@ define <64 x i8> @mul_v64i8c(<64 x i8> %
; AVX512F-NEXT: vpmullw %ymm3, %ymm1, %ymm1
; AVX512F-NEXT: vpmovsxwd %ymm1, %zmm1
; AVX512F-NEXT: vpmovdb %zmm1, %xmm1
-; AVX512F-NEXT: vinsertf128 $1, %xmm1, %ymm2, %ymm1
+; AVX512F-NEXT: vinserti128 $1, %xmm1, %ymm2, %ymm1
; AVX512F-NEXT: retq
;
; AVX512BW-LABEL: mul_v64i8c:
; AVX512BW: # BB#0: # %entry
-; AVX512BW-NEXT: vmovaps {{.*#+}} ymm1 = [117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117]
+; AVX512BW-NEXT: vmovdqa {{.*#+}} ymm1 = [117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117]
; AVX512BW-NEXT: vpmovsxbw %ymm1, %zmm1
; AVX512BW-NEXT: vpmovsxbw %ymm0, %zmm2
; AVX512BW-NEXT: vpmullw %zmm1, %zmm2, %zmm2
@@ -1141,7 +1141,7 @@ define <64 x i8> @mul_v64i8(<64 x i8> %i
; AVX512F-NEXT: vpmullw %ymm2, %ymm0, %ymm0
; AVX512F-NEXT: vpmovsxwd %ymm0, %zmm0
; AVX512F-NEXT: vpmovdb %zmm0, %xmm0
-; AVX512F-NEXT: vinsertf128 $1, %xmm0, %ymm4, %ymm0
+; AVX512F-NEXT: vinserti128 $1, %xmm0, %ymm4, %ymm0
; AVX512F-NEXT: vpmovsxbw %xmm3, %ymm2
; AVX512F-NEXT: vpmovsxbw %xmm1, %ymm4
; AVX512F-NEXT: vpmullw %ymm2, %ymm4, %ymm2
@@ -1154,7 +1154,7 @@ define <64 x i8> @mul_v64i8(<64 x i8> %i
; AVX512F-NEXT: vpmullw %ymm3, %ymm1, %ymm1
; AVX512F-NEXT: vpmovsxwd %ymm1, %zmm1
; AVX512F-NEXT: vpmovdb %zmm1, %xmm1
-; AVX512F-NEXT: vinsertf128 $1, %xmm1, %ymm2, %ymm1
+; AVX512F-NEXT: vinserti128 $1, %xmm1, %ymm2, %ymm1
; AVX512F-NEXT: retq
;
; AVX512BW-LABEL: mul_v64i8:
Modified: llvm/trunk/test/CodeGen/X86/vector-compare-results.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/vector-compare-results.ll?rev=276394&r1=276393&r2=276394&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/vector-compare-results.ll (original)
+++ llvm/trunk/test/CodeGen/X86/vector-compare-results.ll Fri Jul 22 00:46:44 2016
@@ -1236,7 +1236,7 @@ define <32 x i1> @test_cmp_v32i16(<32 x
; AVX512-NEXT: vpcmpgtw %ymm3, %ymm1, %ymm1
; AVX512-NEXT: vpmovsxwd %ymm1, %zmm1
; AVX512-NEXT: vpmovdb %zmm1, %xmm1
-; AVX512-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm0
+; AVX512-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm0
; AVX512-NEXT: retq
%1 = icmp sgt <32 x i16> %a0, %a1
ret <32 x i1> %1
@@ -2859,7 +2859,7 @@ define <32 x i1> @test_cmp_v32f32(<32 x
; AVX512-NEXT: vinserti128 $1, %xmm0, %ymm1, %ymm0
; AVX512-NEXT: vinserti64x4 $1, %ymm2, %zmm0, %zmm0
; AVX512-NEXT: vpmovdb %zmm0, %xmm0
-; AVX512-NEXT: vinsertf128 $1, %xmm0, %ymm8, %ymm0
+; AVX512-NEXT: vinserti128 $1, %xmm0, %ymm8, %ymm0
; AVX512-NEXT: retq
%1 = fcmp ogt <32 x float> %a0, %a1
ret <32 x i1> %1
@@ -3769,7 +3769,7 @@ define <32 x i1> @test_cmp_v32i32(<32 x
; AVX512-NEXT: vinserti128 $1, %xmm4, %ymm1, %ymm1
; AVX512-NEXT: vinserti64x4 $1, %ymm2, %zmm1, %zmm1
; AVX512-NEXT: vpmovdb %zmm1, %xmm1
-; AVX512-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm0
+; AVX512-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm0
; AVX512-NEXT: retq
%1 = icmp sgt <32 x i32> %a0, %a1
ret <32 x i1> %1
Modified: llvm/trunk/test/CodeGen/X86/vector-lzcnt-256.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/vector-lzcnt-256.ll?rev=276394&r1=276393&r2=276394&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/vector-lzcnt-256.ll (original)
+++ llvm/trunk/test/CodeGen/X86/vector-lzcnt-256.ll Fri Jul 22 00:46:44 2016
@@ -500,7 +500,7 @@ define <32 x i8> @testv32i8(<32 x i8> %i
;
; AVX512CD-LABEL: testv32i8:
; AVX512CD: ## BB#0:
-; AVX512CD-NEXT: vextractf128 $1, %ymm0, %xmm1
+; AVX512CD-NEXT: vextracti128 $1, %ymm0, %xmm1
; AVX512CD-NEXT: vpmovzxbd {{.*#+}} zmm1 = xmm1[0],zero,zero,zero,xmm1[1],zero,zero,zero,xmm1[2],zero,zero,zero,xmm1[3],zero,zero,zero,xmm1[4],zero,zero,zero,xmm1[5],zero,zero,zero,xmm1[6],zero,zero,zero,xmm1[7],zero,zero,zero,xmm1[8],zero,zero,zero,xmm1[9],zero,zero,zero,xmm1[10],zero,zero,zero,xmm1[11],zero,zero,zero,xmm1[12],zero,zero,zero,xmm1[13],zero,zero,zero,xmm1[14],zero,zero,zero,xmm1[15],zero,zero,zero
; AVX512CD-NEXT: vplzcntd %zmm1, %zmm1
; AVX512CD-NEXT: vpmovdb %zmm1, %xmm1
@@ -574,7 +574,7 @@ define <32 x i8> @testv32i8u(<32 x i8> %
;
; AVX512CD-LABEL: testv32i8u:
; AVX512CD: ## BB#0:
-; AVX512CD-NEXT: vextractf128 $1, %ymm0, %xmm1
+; AVX512CD-NEXT: vextracti128 $1, %ymm0, %xmm1
; AVX512CD-NEXT: vpmovzxbd {{.*#+}} zmm1 = xmm1[0],zero,zero,zero,xmm1[1],zero,zero,zero,xmm1[2],zero,zero,zero,xmm1[3],zero,zero,zero,xmm1[4],zero,zero,zero,xmm1[5],zero,zero,zero,xmm1[6],zero,zero,zero,xmm1[7],zero,zero,zero,xmm1[8],zero,zero,zero,xmm1[9],zero,zero,zero,xmm1[10],zero,zero,zero,xmm1[11],zero,zero,zero,xmm1[12],zero,zero,zero,xmm1[13],zero,zero,zero,xmm1[14],zero,zero,zero,xmm1[15],zero,zero,zero
; AVX512CD-NEXT: vplzcntd %zmm1, %zmm1
; AVX512CD-NEXT: vpmovdb %zmm1, %xmm1
Modified: llvm/trunk/test/CodeGen/X86/vector-lzcnt-512.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/vector-lzcnt-512.ll?rev=276394&r1=276393&r2=276394&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/vector-lzcnt-512.ll (original)
+++ llvm/trunk/test/CodeGen/X86/vector-lzcnt-512.ll Fri Jul 22 00:46:44 2016
@@ -105,7 +105,7 @@ define <32 x i16> @testv32i16u(<32 x i16
define <64 x i8> @testv64i8(<64 x i8> %in) nounwind {
; AVX512CD-LABEL: testv64i8:
; AVX512CD: ## BB#0:
-; AVX512CD-NEXT: vextractf128 $1, %ymm0, %xmm2
+; AVX512CD-NEXT: vextracti128 $1, %ymm0, %xmm2
; AVX512CD-NEXT: vpmovzxbd {{.*#+}} zmm2 = xmm2[0],zero,zero,zero,xmm2[1],zero,zero,zero,xmm2[2],zero,zero,zero,xmm2[3],zero,zero,zero,xmm2[4],zero,zero,zero,xmm2[5],zero,zero,zero,xmm2[6],zero,zero,zero,xmm2[7],zero,zero,zero,xmm2[8],zero,zero,zero,xmm2[9],zero,zero,zero,xmm2[10],zero,zero,zero,xmm2[11],zero,zero,zero,xmm2[12],zero,zero,zero,xmm2[13],zero,zero,zero,xmm2[14],zero,zero,zero,xmm2[15],zero,zero,zero
; AVX512CD-NEXT: vplzcntd %zmm2, %zmm2
; AVX512CD-NEXT: vpmovdb %zmm2, %xmm2
@@ -116,7 +116,7 @@ define <64 x i8> @testv64i8(<64 x i8> %i
; AVX512CD-NEXT: vpmovdb %zmm0, %xmm0
; AVX512CD-NEXT: vpsubb %xmm3, %xmm0, %xmm0
; AVX512CD-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm0
-; AVX512CD-NEXT: vextractf128 $1, %ymm1, %xmm2
+; AVX512CD-NEXT: vextracti128 $1, %ymm1, %xmm2
; AVX512CD-NEXT: vpmovzxbd {{.*#+}} zmm2 = xmm2[0],zero,zero,zero,xmm2[1],zero,zero,zero,xmm2[2],zero,zero,zero,xmm2[3],zero,zero,zero,xmm2[4],zero,zero,zero,xmm2[5],zero,zero,zero,xmm2[6],zero,zero,zero,xmm2[7],zero,zero,zero,xmm2[8],zero,zero,zero,xmm2[9],zero,zero,zero,xmm2[10],zero,zero,zero,xmm2[11],zero,zero,zero,xmm2[12],zero,zero,zero,xmm2[13],zero,zero,zero,xmm2[14],zero,zero,zero,xmm2[15],zero,zero,zero
; AVX512CD-NEXT: vplzcntd %zmm2, %zmm2
; AVX512CD-NEXT: vpmovdb %zmm2, %xmm2
@@ -161,7 +161,7 @@ define <64 x i8> @testv64i8(<64 x i8> %i
define <64 x i8> @testv64i8u(<64 x i8> %in) nounwind {
; AVX512CD-LABEL: testv64i8u:
; AVX512CD: ## BB#0:
-; AVX512CD-NEXT: vextractf128 $1, %ymm0, %xmm2
+; AVX512CD-NEXT: vextracti128 $1, %ymm0, %xmm2
; AVX512CD-NEXT: vpmovzxbd {{.*#+}} zmm2 = xmm2[0],zero,zero,zero,xmm2[1],zero,zero,zero,xmm2[2],zero,zero,zero,xmm2[3],zero,zero,zero,xmm2[4],zero,zero,zero,xmm2[5],zero,zero,zero,xmm2[6],zero,zero,zero,xmm2[7],zero,zero,zero,xmm2[8],zero,zero,zero,xmm2[9],zero,zero,zero,xmm2[10],zero,zero,zero,xmm2[11],zero,zero,zero,xmm2[12],zero,zero,zero,xmm2[13],zero,zero,zero,xmm2[14],zero,zero,zero,xmm2[15],zero,zero,zero
; AVX512CD-NEXT: vplzcntd %zmm2, %zmm2
; AVX512CD-NEXT: vpmovdb %zmm2, %xmm2
@@ -172,7 +172,7 @@ define <64 x i8> @testv64i8u(<64 x i8> %
; AVX512CD-NEXT: vpmovdb %zmm0, %xmm0
; AVX512CD-NEXT: vpsubb %xmm3, %xmm0, %xmm0
; AVX512CD-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm0
-; AVX512CD-NEXT: vextractf128 $1, %ymm1, %xmm2
+; AVX512CD-NEXT: vextracti128 $1, %ymm1, %xmm2
; AVX512CD-NEXT: vpmovzxbd {{.*#+}} zmm2 = xmm2[0],zero,zero,zero,xmm2[1],zero,zero,zero,xmm2[2],zero,zero,zero,xmm2[3],zero,zero,zero,xmm2[4],zero,zero,zero,xmm2[5],zero,zero,zero,xmm2[6],zero,zero,zero,xmm2[7],zero,zero,zero,xmm2[8],zero,zero,zero,xmm2[9],zero,zero,zero,xmm2[10],zero,zero,zero,xmm2[11],zero,zero,zero,xmm2[12],zero,zero,zero,xmm2[13],zero,zero,zero,xmm2[14],zero,zero,zero,xmm2[15],zero,zero,zero
; AVX512CD-NEXT: vplzcntd %zmm2, %zmm2
; AVX512CD-NEXT: vpmovdb %zmm2, %xmm2
Modified: llvm/trunk/test/CodeGen/X86/vector-sext.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/vector-sext.ll?rev=276394&r1=276393&r2=276394&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/vector-sext.ll (original)
+++ llvm/trunk/test/CodeGen/X86/vector-sext.ll Fri Jul 22 00:46:44 2016
@@ -3744,7 +3744,7 @@ define <32 x i8> @load_sext_32i1_to_32i8
; AVX512-NEXT: vpmovdb %zmm1, %xmm1
; AVX512-NEXT: vmovdqa32 %zmm0, %zmm0 {%k2} {z}
; AVX512-NEXT: vpmovdb %zmm0, %xmm0
-; AVX512-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm0
+; AVX512-NEXT: vinserti128 $1, %xmm0, %ymm1, %ymm0
; AVX512-NEXT: retq
;
; X32-SSE41-LABEL: load_sext_32i1_to_32i8:
Modified: llvm/trunk/test/CodeGen/X86/vector-trunc-math.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/vector-trunc-math.ll?rev=276394&r1=276393&r2=276394&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/vector-trunc-math.ll (original)
+++ llvm/trunk/test/CodeGen/X86/vector-trunc-math.ll Fri Jul 22 00:46:44 2016
@@ -3007,7 +3007,7 @@ define <4 x i32> @trunc_and_v4i64_4i32(<
;
; AVX512-LABEL: trunc_and_v4i64_4i32:
; AVX512: # BB#0:
-; AVX512-NEXT: vandps %ymm1, %ymm0, %ymm0
+; AVX512-NEXT: vpand %ymm1, %ymm0, %ymm0
; AVX512-NEXT: vpmovqd %zmm0, %ymm0
; AVX512-NEXT: # kill: %XMM0<def> %XMM0<kill> %YMM0<kill>
; AVX512-NEXT: retq
@@ -3074,7 +3074,7 @@ define <8 x i16> @trunc_and_v8i64_8i16(<
;
; AVX512-LABEL: trunc_and_v8i64_8i16:
; AVX512: # BB#0:
-; AVX512-NEXT: vandps %zmm1, %zmm0, %zmm0
+; AVX512-NEXT: vpandq %zmm1, %zmm0, %zmm0
; AVX512-NEXT: vpmovqw %zmm0, %xmm0
; AVX512-NEXT: retq
%1 = and <8 x i64> %a0, %a1
@@ -3116,7 +3116,7 @@ define <8 x i16> @trunc_and_v8i32_8i16(<
;
; AVX512-LABEL: trunc_and_v8i32_8i16:
; AVX512: # BB#0:
-; AVX512-NEXT: vandps %ymm1, %ymm0, %ymm0
+; AVX512-NEXT: vpand %ymm1, %ymm0, %ymm0
; AVX512-NEXT: vpmovdw %zmm0, %ymm0
; AVX512-NEXT: # kill: %XMM0<def> %XMM0<kill> %YMM0<kill>
; AVX512-NEXT: retq
@@ -3213,8 +3213,8 @@ define <16 x i8> @trunc_and_v16i64_v16i8
;
; AVX512-LABEL: trunc_and_v16i64_v16i8:
; AVX512: # BB#0:
-; AVX512-NEXT: vandps %zmm3, %zmm1, %zmm1
-; AVX512-NEXT: vandps %zmm2, %zmm0, %zmm0
+; AVX512-NEXT: vpandq %zmm3, %zmm1, %zmm1
+; AVX512-NEXT: vpandq %zmm2, %zmm0, %zmm0
; AVX512-NEXT: vpmovqd %zmm0, %ymm0
; AVX512-NEXT: vpmovqd %zmm1, %ymm1
; AVX512-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
@@ -3320,14 +3320,14 @@ define <16 x i8> @trunc_and_v16i16_v16i8
;
; AVX512F-LABEL: trunc_and_v16i16_v16i8:
; AVX512F: # BB#0:
-; AVX512F-NEXT: vandps %ymm1, %ymm0, %ymm0
+; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm0
; AVX512F-NEXT: vpmovsxwd %ymm0, %zmm0
; AVX512F-NEXT: vpmovdb %zmm0, %xmm0
; AVX512F-NEXT: retq
;
; AVX512BW-LABEL: trunc_and_v16i16_v16i8:
; AVX512BW: # BB#0:
-; AVX512BW-NEXT: vandps %ymm1, %ymm0, %ymm0
+; AVX512BW-NEXT: vpand %ymm1, %ymm0, %ymm0
; AVX512BW-NEXT: vpmovwb %zmm0, %ymm0
; AVX512BW-NEXT: # kill: %XMM0<def> %XMM0<kill> %YMM0<kill>
; AVX512BW-NEXT: retq
@@ -3374,7 +3374,7 @@ define <4 x i32> @trunc_and_const_v4i64_
;
; AVX512-LABEL: trunc_and_const_v4i64_4i32:
; AVX512: # BB#0:
-; AVX512-NEXT: vandps {{.*}}(%rip), %ymm0, %ymm0
+; AVX512-NEXT: vpand {{.*}}(%rip), %ymm0, %ymm0
; AVX512-NEXT: vpmovqd %zmm0, %ymm0
; AVX512-NEXT: # kill: %XMM0<def> %XMM0<kill> %YMM0<kill>
; AVX512-NEXT: retq
@@ -3445,7 +3445,7 @@ define <8 x i16> @trunc_and_const_v16i64
;
; AVX512-LABEL: trunc_and_const_v16i64_v16i16:
; AVX512: # BB#0:
-; AVX512-NEXT: vandps {{.*}}(%rip), %zmm0, %zmm0
+; AVX512-NEXT: vpandq {{.*}}(%rip), %zmm0, %zmm0
; AVX512-NEXT: vpmovqw %zmm0, %xmm0
; AVX512-NEXT: retq
%1 = and <8 x i64> %a0, <i64 0, i64 1, i64 2, i64 3, i64 4, i64 5, i64 6, i64 7>
@@ -3487,7 +3487,7 @@ define <8 x i16> @trunc_and_const_v16i32
;
; AVX512-LABEL: trunc_and_const_v16i32_v16i16:
; AVX512: # BB#0:
-; AVX512-NEXT: vandps {{.*}}(%rip), %ymm0, %ymm0
+; AVX512-NEXT: vpand {{.*}}(%rip), %ymm0, %ymm0
; AVX512-NEXT: vpmovdw %zmm0, %ymm0
; AVX512-NEXT: # kill: %XMM0<def> %XMM0<kill> %YMM0<kill>
; AVX512-NEXT: retq
@@ -3587,8 +3587,8 @@ define <16 x i8> @trunc_and_const_v16i64
;
; AVX512-LABEL: trunc_and_const_v16i64_v16i8:
; AVX512: # BB#0:
-; AVX512-NEXT: vandps {{.*}}(%rip), %zmm1, %zmm1
-; AVX512-NEXT: vandps {{.*}}(%rip), %zmm0, %zmm0
+; AVX512-NEXT: vpandq {{.*}}(%rip), %zmm1, %zmm1
+; AVX512-NEXT: vpandq {{.*}}(%rip), %zmm0, %zmm0
; AVX512-NEXT: vpmovqd %zmm0, %ymm0
; AVX512-NEXT: vpmovqd %zmm1, %ymm1
; AVX512-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
@@ -3694,14 +3694,14 @@ define <16 x i8> @trunc_and_const_v16i16
;
; AVX512F-LABEL: trunc_and_const_v16i16_v16i8:
; AVX512F: # BB#0:
-; AVX512F-NEXT: vandps {{.*}}(%rip), %ymm0, %ymm0
+; AVX512F-NEXT: vpand {{.*}}(%rip), %ymm0, %ymm0
; AVX512F-NEXT: vpmovsxwd %ymm0, %zmm0
; AVX512F-NEXT: vpmovdb %zmm0, %xmm0
; AVX512F-NEXT: retq
;
; AVX512BW-LABEL: trunc_and_const_v16i16_v16i8:
; AVX512BW: # BB#0:
-; AVX512BW-NEXT: vandps {{.*}}(%rip), %ymm0, %ymm0
+; AVX512BW-NEXT: vpand {{.*}}(%rip), %ymm0, %ymm0
; AVX512BW-NEXT: vpmovwb %zmm0, %ymm0
; AVX512BW-NEXT: # kill: %XMM0<def> %XMM0<kill> %YMM0<kill>
; AVX512BW-NEXT: retq
@@ -3745,7 +3745,7 @@ define <4 x i32> @trunc_xor_v4i64_4i32(<
;
; AVX512-LABEL: trunc_xor_v4i64_4i32:
; AVX512: # BB#0:
-; AVX512-NEXT: vxorps %ymm1, %ymm0, %ymm0
+; AVX512-NEXT: vpxor %ymm1, %ymm0, %ymm0
; AVX512-NEXT: vpmovqd %zmm0, %ymm0
; AVX512-NEXT: # kill: %XMM0<def> %XMM0<kill> %YMM0<kill>
; AVX512-NEXT: retq
@@ -3812,7 +3812,7 @@ define <8 x i16> @trunc_xor_v8i64_8i16(<
;
; AVX512-LABEL: trunc_xor_v8i64_8i16:
; AVX512: # BB#0:
-; AVX512-NEXT: vxorps %zmm1, %zmm0, %zmm0
+; AVX512-NEXT: vpxorq %zmm1, %zmm0, %zmm0
; AVX512-NEXT: vpmovqw %zmm0, %xmm0
; AVX512-NEXT: retq
%1 = xor <8 x i64> %a0, %a1
@@ -3854,7 +3854,7 @@ define <8 x i16> @trunc_xor_v8i32_8i16(<
;
; AVX512-LABEL: trunc_xor_v8i32_8i16:
; AVX512: # BB#0:
-; AVX512-NEXT: vxorps %ymm1, %ymm0, %ymm0
+; AVX512-NEXT: vpxor %ymm1, %ymm0, %ymm0
; AVX512-NEXT: vpmovdw %zmm0, %ymm0
; AVX512-NEXT: # kill: %XMM0<def> %XMM0<kill> %YMM0<kill>
; AVX512-NEXT: retq
@@ -3951,8 +3951,8 @@ define <16 x i8> @trunc_xor_v16i64_v16i8
;
; AVX512-LABEL: trunc_xor_v16i64_v16i8:
; AVX512: # BB#0:
-; AVX512-NEXT: vxorps %zmm3, %zmm1, %zmm1
-; AVX512-NEXT: vxorps %zmm2, %zmm0, %zmm0
+; AVX512-NEXT: vpxorq %zmm3, %zmm1, %zmm1
+; AVX512-NEXT: vpxorq %zmm2, %zmm0, %zmm0
; AVX512-NEXT: vpmovqd %zmm0, %ymm0
; AVX512-NEXT: vpmovqd %zmm1, %ymm1
; AVX512-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
@@ -4058,14 +4058,14 @@ define <16 x i8> @trunc_xor_v16i16_v16i8
;
; AVX512F-LABEL: trunc_xor_v16i16_v16i8:
; AVX512F: # BB#0:
-; AVX512F-NEXT: vxorps %ymm1, %ymm0, %ymm0
+; AVX512F-NEXT: vpxor %ymm1, %ymm0, %ymm0
; AVX512F-NEXT: vpmovsxwd %ymm0, %zmm0
; AVX512F-NEXT: vpmovdb %zmm0, %xmm0
; AVX512F-NEXT: retq
;
; AVX512BW-LABEL: trunc_xor_v16i16_v16i8:
; AVX512BW: # BB#0:
-; AVX512BW-NEXT: vxorps %ymm1, %ymm0, %ymm0
+; AVX512BW-NEXT: vpxor %ymm1, %ymm0, %ymm0
; AVX512BW-NEXT: vpmovwb %zmm0, %ymm0
; AVX512BW-NEXT: # kill: %XMM0<def> %XMM0<kill> %YMM0<kill>
; AVX512BW-NEXT: retq
@@ -4112,7 +4112,7 @@ define <4 x i32> @trunc_xor_const_v4i64_
;
; AVX512-LABEL: trunc_xor_const_v4i64_4i32:
; AVX512: # BB#0:
-; AVX512-NEXT: vxorps {{.*}}(%rip), %ymm0, %ymm0
+; AVX512-NEXT: vpxor {{.*}}(%rip), %ymm0, %ymm0
; AVX512-NEXT: vpmovqd %zmm0, %ymm0
; AVX512-NEXT: # kill: %XMM0<def> %XMM0<kill> %YMM0<kill>
; AVX512-NEXT: retq
@@ -4183,7 +4183,7 @@ define <8 x i16> @trunc_xor_const_v16i64
;
; AVX512-LABEL: trunc_xor_const_v16i64_v16i16:
; AVX512: # BB#0:
-; AVX512-NEXT: vxorps {{.*}}(%rip), %zmm0, %zmm0
+; AVX512-NEXT: vpxorq {{.*}}(%rip), %zmm0, %zmm0
; AVX512-NEXT: vpmovqw %zmm0, %xmm0
; AVX512-NEXT: retq
%1 = xor <8 x i64> %a0, <i64 0, i64 1, i64 2, i64 3, i64 4, i64 5, i64 6, i64 7>
@@ -4225,7 +4225,7 @@ define <8 x i16> @trunc_xor_const_v16i32
;
; AVX512-LABEL: trunc_xor_const_v16i32_v16i16:
; AVX512: # BB#0:
-; AVX512-NEXT: vxorps {{.*}}(%rip), %ymm0, %ymm0
+; AVX512-NEXT: vpxor {{.*}}(%rip), %ymm0, %ymm0
; AVX512-NEXT: vpmovdw %zmm0, %ymm0
; AVX512-NEXT: # kill: %XMM0<def> %XMM0<kill> %YMM0<kill>
; AVX512-NEXT: retq
@@ -4325,8 +4325,8 @@ define <16 x i8> @trunc_xor_const_v16i64
;
; AVX512-LABEL: trunc_xor_const_v16i64_v16i8:
; AVX512: # BB#0:
-; AVX512-NEXT: vxorps {{.*}}(%rip), %zmm1, %zmm1
-; AVX512-NEXT: vxorps {{.*}}(%rip), %zmm0, %zmm0
+; AVX512-NEXT: vpxorq {{.*}}(%rip), %zmm1, %zmm1
+; AVX512-NEXT: vpxorq {{.*}}(%rip), %zmm0, %zmm0
; AVX512-NEXT: vpmovqd %zmm0, %ymm0
; AVX512-NEXT: vpmovqd %zmm1, %ymm1
; AVX512-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
@@ -4432,14 +4432,14 @@ define <16 x i8> @trunc_xor_const_v16i16
;
; AVX512F-LABEL: trunc_xor_const_v16i16_v16i8:
; AVX512F: # BB#0:
-; AVX512F-NEXT: vxorps {{.*}}(%rip), %ymm0, %ymm0
+; AVX512F-NEXT: vpxor {{.*}}(%rip), %ymm0, %ymm0
; AVX512F-NEXT: vpmovsxwd %ymm0, %zmm0
; AVX512F-NEXT: vpmovdb %zmm0, %xmm0
; AVX512F-NEXT: retq
;
; AVX512BW-LABEL: trunc_xor_const_v16i16_v16i8:
; AVX512BW: # BB#0:
-; AVX512BW-NEXT: vxorps {{.*}}(%rip), %ymm0, %ymm0
+; AVX512BW-NEXT: vpxor {{.*}}(%rip), %ymm0, %ymm0
; AVX512BW-NEXT: vpmovwb %zmm0, %ymm0
; AVX512BW-NEXT: # kill: %XMM0<def> %XMM0<kill> %YMM0<kill>
; AVX512BW-NEXT: retq
@@ -4483,7 +4483,7 @@ define <4 x i32> @trunc_or_v4i64_4i32(<4
;
; AVX512-LABEL: trunc_or_v4i64_4i32:
; AVX512: # BB#0:
-; AVX512-NEXT: vorps %ymm1, %ymm0, %ymm0
+; AVX512-NEXT: vpor %ymm1, %ymm0, %ymm0
; AVX512-NEXT: vpmovqd %zmm0, %ymm0
; AVX512-NEXT: # kill: %XMM0<def> %XMM0<kill> %YMM0<kill>
; AVX512-NEXT: retq
@@ -4550,7 +4550,7 @@ define <8 x i16> @trunc_or_v8i64_8i16(<8
;
; AVX512-LABEL: trunc_or_v8i64_8i16:
; AVX512: # BB#0:
-; AVX512-NEXT: vorps %zmm1, %zmm0, %zmm0
+; AVX512-NEXT: vporq %zmm1, %zmm0, %zmm0
; AVX512-NEXT: vpmovqw %zmm0, %xmm0
; AVX512-NEXT: retq
%1 = or <8 x i64> %a0, %a1
@@ -4592,7 +4592,7 @@ define <8 x i16> @trunc_or_v8i32_8i16(<8
;
; AVX512-LABEL: trunc_or_v8i32_8i16:
; AVX512: # BB#0:
-; AVX512-NEXT: vorps %ymm1, %ymm0, %ymm0
+; AVX512-NEXT: vpor %ymm1, %ymm0, %ymm0
; AVX512-NEXT: vpmovdw %zmm0, %ymm0
; AVX512-NEXT: # kill: %XMM0<def> %XMM0<kill> %YMM0<kill>
; AVX512-NEXT: retq
@@ -4689,8 +4689,8 @@ define <16 x i8> @trunc_or_v16i64_v16i8(
;
; AVX512-LABEL: trunc_or_v16i64_v16i8:
; AVX512: # BB#0:
-; AVX512-NEXT: vorps %zmm3, %zmm1, %zmm1
-; AVX512-NEXT: vorps %zmm2, %zmm0, %zmm0
+; AVX512-NEXT: vporq %zmm3, %zmm1, %zmm1
+; AVX512-NEXT: vporq %zmm2, %zmm0, %zmm0
; AVX512-NEXT: vpmovqd %zmm0, %ymm0
; AVX512-NEXT: vpmovqd %zmm1, %ymm1
; AVX512-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
@@ -4796,14 +4796,14 @@ define <16 x i8> @trunc_or_v16i16_v16i8(
;
; AVX512F-LABEL: trunc_or_v16i16_v16i8:
; AVX512F: # BB#0:
-; AVX512F-NEXT: vorps %ymm1, %ymm0, %ymm0
+; AVX512F-NEXT: vpor %ymm1, %ymm0, %ymm0
; AVX512F-NEXT: vpmovsxwd %ymm0, %zmm0
; AVX512F-NEXT: vpmovdb %zmm0, %xmm0
; AVX512F-NEXT: retq
;
; AVX512BW-LABEL: trunc_or_v16i16_v16i8:
; AVX512BW: # BB#0:
-; AVX512BW-NEXT: vorps %ymm1, %ymm0, %ymm0
+; AVX512BW-NEXT: vpor %ymm1, %ymm0, %ymm0
; AVX512BW-NEXT: vpmovwb %zmm0, %ymm0
; AVX512BW-NEXT: # kill: %XMM0<def> %XMM0<kill> %YMM0<kill>
; AVX512BW-NEXT: retq
@@ -4850,7 +4850,7 @@ define <4 x i32> @trunc_or_const_v4i64_4
;
; AVX512-LABEL: trunc_or_const_v4i64_4i32:
; AVX512: # BB#0:
-; AVX512-NEXT: vorps {{.*}}(%rip), %ymm0, %ymm0
+; AVX512-NEXT: vpor {{.*}}(%rip), %ymm0, %ymm0
; AVX512-NEXT: vpmovqd %zmm0, %ymm0
; AVX512-NEXT: # kill: %XMM0<def> %XMM0<kill> %YMM0<kill>
; AVX512-NEXT: retq
@@ -4921,7 +4921,7 @@ define <8 x i16> @trunc_or_const_v16i64_
;
; AVX512-LABEL: trunc_or_const_v16i64_v16i16:
; AVX512: # BB#0:
-; AVX512-NEXT: vorps {{.*}}(%rip), %zmm0, %zmm0
+; AVX512-NEXT: vporq {{.*}}(%rip), %zmm0, %zmm0
; AVX512-NEXT: vpmovqw %zmm0, %xmm0
; AVX512-NEXT: retq
%1 = or <8 x i64> %a0, <i64 0, i64 1, i64 2, i64 3, i64 4, i64 5, i64 6, i64 7>
@@ -4963,7 +4963,7 @@ define <8 x i16> @trunc_or_const_v16i32_
;
; AVX512-LABEL: trunc_or_const_v16i32_v16i16:
; AVX512: # BB#0:
-; AVX512-NEXT: vorps {{.*}}(%rip), %ymm0, %ymm0
+; AVX512-NEXT: vpor {{.*}}(%rip), %ymm0, %ymm0
; AVX512-NEXT: vpmovdw %zmm0, %ymm0
; AVX512-NEXT: # kill: %XMM0<def> %XMM0<kill> %YMM0<kill>
; AVX512-NEXT: retq
@@ -5063,8 +5063,8 @@ define <16 x i8> @trunc_or_const_v16i64_
;
; AVX512-LABEL: trunc_or_const_v16i64_v16i8:
; AVX512: # BB#0:
-; AVX512-NEXT: vorps {{.*}}(%rip), %zmm1, %zmm1
-; AVX512-NEXT: vorps {{.*}}(%rip), %zmm0, %zmm0
+; AVX512-NEXT: vporq {{.*}}(%rip), %zmm1, %zmm1
+; AVX512-NEXT: vporq {{.*}}(%rip), %zmm0, %zmm0
; AVX512-NEXT: vpmovqd %zmm0, %ymm0
; AVX512-NEXT: vpmovqd %zmm1, %ymm1
; AVX512-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
@@ -5170,14 +5170,14 @@ define <16 x i8> @trunc_or_const_v16i16_
;
; AVX512F-LABEL: trunc_or_const_v16i16_v16i8:
; AVX512F: # BB#0:
-; AVX512F-NEXT: vorps {{.*}}(%rip), %ymm0, %ymm0
+; AVX512F-NEXT: vpor {{.*}}(%rip), %ymm0, %ymm0
; AVX512F-NEXT: vpmovsxwd %ymm0, %zmm0
; AVX512F-NEXT: vpmovdb %zmm0, %xmm0
; AVX512F-NEXT: retq
;
; AVX512BW-LABEL: trunc_or_const_v16i16_v16i8:
; AVX512BW: # BB#0:
-; AVX512BW-NEXT: vorps {{.*}}(%rip), %ymm0, %ymm0
+; AVX512BW-NEXT: vpor {{.*}}(%rip), %ymm0, %ymm0
; AVX512BW-NEXT: vpmovwb %zmm0, %ymm0
; AVX512BW-NEXT: # kill: %XMM0<def> %XMM0<kill> %YMM0<kill>
; AVX512BW-NEXT: retq
Modified: llvm/trunk/test/CodeGen/X86/vector-trunc.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/vector-trunc.ll?rev=276394&r1=276393&r2=276394&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/vector-trunc.ll (original)
+++ llvm/trunk/test/CodeGen/X86/vector-trunc.ll Fri Jul 22 00:46:44 2016
@@ -443,7 +443,7 @@ define <8 x i32> @trunc2x4i64_8i32(<4 x
; AVX512BW-NEXT: # kill: %YMM0<def> %YMM0<kill> %ZMM0<def>
; AVX512BW-NEXT: vpmovqd %zmm0, %ymm0
; AVX512BW-NEXT: vpmovqd %zmm1, %ymm1
-; AVX512BW-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm0
+; AVX512BW-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm0
; AVX512BW-NEXT: retq
entry:
%0 = trunc <4 x i64> %a to <4 x i32>
More information about the llvm-commits
mailing list