|
|
|
@@ -1,6 +1,6 @@
|
|
|
|
|
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
|
|
|
|
|
; RUN: llc < %s -mtriple=i686-unknown-unknown -mattr=+avx512dq,+avx512vl --show-mc-encoding | FileCheck %s --check-prefixes=CHECK,X86
|
|
|
|
|
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512dq,+avx512vl --show-mc-encoding | FileCheck %s --check-prefixes=CHECK,X64
|
|
|
|
|
; RUN: llc < %s -disable-peephole -mtriple=i686-unknown-unknown -mattr=+avx512dq,+avx512vl --show-mc-encoding | FileCheck %s --check-prefixes=CHECK,X86
|
|
|
|
|
; RUN: llc < %s -disable-peephole -mtriple=x86_64-unknown-unknown -mattr=+avx512dq,+avx512vl --show-mc-encoding | FileCheck %s --check-prefixes=CHECK,X64
|
|
|
|
|
|
|
|
|
|
declare <2 x i64> @llvm.x86.avx512.mask.cvtpd2qq.128(<2 x double>, <2 x i64>, i8)
|
|
|
|
|
|
|
|
|
@@ -126,16 +126,12 @@ define <2 x i64> @test_int_x86_avx512_cvt_ps2qq_128_load(<2 x float>* %p) {
|
|
|
|
|
; X86-LABEL: test_int_x86_avx512_cvt_ps2qq_128_load:
|
|
|
|
|
; X86: # %bb.0:
|
|
|
|
|
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
|
|
|
|
|
; X86-NEXT: vmovsd (%eax), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x00]
|
|
|
|
|
; X86-NEXT: # xmm0 = mem[0],zero
|
|
|
|
|
; X86-NEXT: vcvtps2qq %xmm0, %xmm0 # encoding: [0x62,0xf1,0x7d,0x08,0x7b,0xc0]
|
|
|
|
|
; X86-NEXT: vcvtps2qq (%eax), %xmm0 # encoding: [0x62,0xf1,0x7d,0x08,0x7b,0x00]
|
|
|
|
|
; X86-NEXT: retl # encoding: [0xc3]
|
|
|
|
|
;
|
|
|
|
|
; X64-LABEL: test_int_x86_avx512_cvt_ps2qq_128_load:
|
|
|
|
|
; X64: # %bb.0:
|
|
|
|
|
; X64-NEXT: vmovsd (%rdi), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x07]
|
|
|
|
|
; X64-NEXT: # xmm0 = mem[0],zero
|
|
|
|
|
; X64-NEXT: vcvtps2qq %xmm0, %xmm0 # encoding: [0x62,0xf1,0x7d,0x08,0x7b,0xc0]
|
|
|
|
|
; X64-NEXT: vcvtps2qq (%rdi), %xmm0 # encoding: [0x62,0xf1,0x7d,0x08,0x7b,0x07]
|
|
|
|
|
; X64-NEXT: retq # encoding: [0xc3]
|
|
|
|
|
%x0 = load <2 x float>, <2 x float>* %p
|
|
|
|
|
%x0b = shufflevector <2 x float> %x0, <2 x float> zeroinitializer, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
|
|
|
|
@@ -147,18 +143,14 @@ define <2 x i64> @test_int_x86_avx512_mask_cvt_ps2qq_128_load(<2 x float>* %p, <
|
|
|
|
|
; X86-LABEL: test_int_x86_avx512_mask_cvt_ps2qq_128_load:
|
|
|
|
|
; X86: # %bb.0:
|
|
|
|
|
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
|
|
|
|
|
; X86-NEXT: vmovsd (%eax), %xmm1 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x08]
|
|
|
|
|
; X86-NEXT: # xmm1 = mem[0],zero
|
|
|
|
|
; X86-NEXT: kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x08]
|
|
|
|
|
; X86-NEXT: vcvtps2qq %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf1,0x7d,0x09,0x7b,0xc1]
|
|
|
|
|
; X86-NEXT: vcvtps2qq (%eax), %xmm0 {%k1} # encoding: [0x62,0xf1,0x7d,0x09,0x7b,0x00]
|
|
|
|
|
; X86-NEXT: retl # encoding: [0xc3]
|
|
|
|
|
;
|
|
|
|
|
; X64-LABEL: test_int_x86_avx512_mask_cvt_ps2qq_128_load:
|
|
|
|
|
; X64: # %bb.0:
|
|
|
|
|
; X64-NEXT: kmovw %esi, %k1 # encoding: [0xc5,0xf8,0x92,0xce]
|
|
|
|
|
; X64-NEXT: vmovsd (%rdi), %xmm1 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x0f]
|
|
|
|
|
; X64-NEXT: # xmm1 = mem[0],zero
|
|
|
|
|
; X64-NEXT: vcvtps2qq %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf1,0x7d,0x09,0x7b,0xc1]
|
|
|
|
|
; X64-NEXT: vcvtps2qq (%rdi), %xmm0 {%k1} # encoding: [0x62,0xf1,0x7d,0x09,0x7b,0x07]
|
|
|
|
|
; X64-NEXT: retq # encoding: [0xc3]
|
|
|
|
|
%x0 = load <2 x float>, <2 x float>* %p
|
|
|
|
|
%x0b = shufflevector <2 x float> %x0, <2 x float> zeroinitializer, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
|
|
|
|
@@ -170,18 +162,14 @@ define <2 x i64> @test_int_x86_avx512_maskz_cvt_ps2qq_128_load(<2 x float>* %p,
|
|
|
|
|
; X86-LABEL: test_int_x86_avx512_maskz_cvt_ps2qq_128_load:
|
|
|
|
|
; X86: # %bb.0:
|
|
|
|
|
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
|
|
|
|
|
; X86-NEXT: vmovsd (%eax), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x00]
|
|
|
|
|
; X86-NEXT: # xmm0 = mem[0],zero
|
|
|
|
|
; X86-NEXT: kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x08]
|
|
|
|
|
; X86-NEXT: vcvtps2qq %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf1,0x7d,0x89,0x7b,0xc0]
|
|
|
|
|
; X86-NEXT: vcvtps2qq (%eax), %xmm0 {%k1} {z} # encoding: [0x62,0xf1,0x7d,0x89,0x7b,0x00]
|
|
|
|
|
; X86-NEXT: retl # encoding: [0xc3]
|
|
|
|
|
;
|
|
|
|
|
; X64-LABEL: test_int_x86_avx512_maskz_cvt_ps2qq_128_load:
|
|
|
|
|
; X64: # %bb.0:
|
|
|
|
|
; X64-NEXT: kmovw %esi, %k1 # encoding: [0xc5,0xf8,0x92,0xce]
|
|
|
|
|
; X64-NEXT: vmovsd (%rdi), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x07]
|
|
|
|
|
; X64-NEXT: # xmm0 = mem[0],zero
|
|
|
|
|
; X64-NEXT: vcvtps2qq %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf1,0x7d,0x89,0x7b,0xc0]
|
|
|
|
|
; X64-NEXT: vcvtps2qq (%rdi), %xmm0 {%k1} {z} # encoding: [0x62,0xf1,0x7d,0x89,0x7b,0x07]
|
|
|
|
|
; X64-NEXT: retq # encoding: [0xc3]
|
|
|
|
|
%x0 = load <2 x float>, <2 x float>* %p
|
|
|
|
|
%x0b = shufflevector <2 x float> %x0, <2 x float> zeroinitializer, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
|
|
|
|
@@ -194,16 +182,12 @@ define <2 x i64> @test_int_x86_avx512_cvt_ps2qq_128_load_2(<2 x float>* %p) {
|
|
|
|
|
; X86-LABEL: test_int_x86_avx512_cvt_ps2qq_128_load_2:
|
|
|
|
|
; X86: # %bb.0:
|
|
|
|
|
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
|
|
|
|
|
; X86-NEXT: vmovsd (%eax), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x00]
|
|
|
|
|
; X86-NEXT: # xmm0 = mem[0],zero
|
|
|
|
|
; X86-NEXT: vcvtps2qq %xmm0, %xmm0 # encoding: [0x62,0xf1,0x7d,0x08,0x7b,0xc0]
|
|
|
|
|
; X86-NEXT: vcvtps2qq (%eax), %xmm0 # encoding: [0x62,0xf1,0x7d,0x08,0x7b,0x00]
|
|
|
|
|
; X86-NEXT: retl # encoding: [0xc3]
|
|
|
|
|
;
|
|
|
|
|
; X64-LABEL: test_int_x86_avx512_cvt_ps2qq_128_load_2:
|
|
|
|
|
; X64: # %bb.0:
|
|
|
|
|
; X64-NEXT: vmovsd (%rdi), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x07]
|
|
|
|
|
; X64-NEXT: # xmm0 = mem[0],zero
|
|
|
|
|
; X64-NEXT: vcvtps2qq %xmm0, %xmm0 # encoding: [0x62,0xf1,0x7d,0x08,0x7b,0xc0]
|
|
|
|
|
; X64-NEXT: vcvtps2qq (%rdi), %xmm0 # encoding: [0x62,0xf1,0x7d,0x08,0x7b,0x07]
|
|
|
|
|
; X64-NEXT: retq # encoding: [0xc3]
|
|
|
|
|
%x0 = load <2 x float>, <2 x float>* %p
|
|
|
|
|
%x0b = shufflevector <2 x float> %x0, <2 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
|
|
|
|
@@ -215,18 +199,14 @@ define <2 x i64> @test_int_x86_avx512_mask_cvt_ps2qq_128_load_2(<2 x float>* %p,
|
|
|
|
|
; X86-LABEL: test_int_x86_avx512_mask_cvt_ps2qq_128_load_2:
|
|
|
|
|
; X86: # %bb.0:
|
|
|
|
|
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
|
|
|
|
|
; X86-NEXT: vmovsd (%eax), %xmm1 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x08]
|
|
|
|
|
; X86-NEXT: # xmm1 = mem[0],zero
|
|
|
|
|
; X86-NEXT: kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x08]
|
|
|
|
|
; X86-NEXT: vcvtps2qq %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf1,0x7d,0x09,0x7b,0xc1]
|
|
|
|
|
; X86-NEXT: vcvtps2qq (%eax), %xmm0 {%k1} # encoding: [0x62,0xf1,0x7d,0x09,0x7b,0x00]
|
|
|
|
|
; X86-NEXT: retl # encoding: [0xc3]
|
|
|
|
|
;
|
|
|
|
|
; X64-LABEL: test_int_x86_avx512_mask_cvt_ps2qq_128_load_2:
|
|
|
|
|
; X64: # %bb.0:
|
|
|
|
|
; X64-NEXT: kmovw %esi, %k1 # encoding: [0xc5,0xf8,0x92,0xce]
|
|
|
|
|
; X64-NEXT: vmovsd (%rdi), %xmm1 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x0f]
|
|
|
|
|
; X64-NEXT: # xmm1 = mem[0],zero
|
|
|
|
|
; X64-NEXT: vcvtps2qq %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf1,0x7d,0x09,0x7b,0xc1]
|
|
|
|
|
; X64-NEXT: vcvtps2qq (%rdi), %xmm0 {%k1} # encoding: [0x62,0xf1,0x7d,0x09,0x7b,0x07]
|
|
|
|
|
; X64-NEXT: retq # encoding: [0xc3]
|
|
|
|
|
%x0 = load <2 x float>, <2 x float>* %p
|
|
|
|
|
%x0b = shufflevector <2 x float> %x0, <2 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
|
|
|
|
@@ -238,18 +218,14 @@ define <2 x i64> @test_int_x86_avx512_maskz_cvt_ps2qq_128_load_2(<2 x float>* %p
|
|
|
|
|
; X86-LABEL: test_int_x86_avx512_maskz_cvt_ps2qq_128_load_2:
|
|
|
|
|
; X86: # %bb.0:
|
|
|
|
|
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
|
|
|
|
|
; X86-NEXT: vmovsd (%eax), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x00]
|
|
|
|
|
; X86-NEXT: # xmm0 = mem[0],zero
|
|
|
|
|
; X86-NEXT: kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x08]
|
|
|
|
|
; X86-NEXT: vcvtps2qq %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf1,0x7d,0x89,0x7b,0xc0]
|
|
|
|
|
; X86-NEXT: vcvtps2qq (%eax), %xmm0 {%k1} {z} # encoding: [0x62,0xf1,0x7d,0x89,0x7b,0x00]
|
|
|
|
|
; X86-NEXT: retl # encoding: [0xc3]
|
|
|
|
|
;
|
|
|
|
|
; X64-LABEL: test_int_x86_avx512_maskz_cvt_ps2qq_128_load_2:
|
|
|
|
|
; X64: # %bb.0:
|
|
|
|
|
; X64-NEXT: kmovw %esi, %k1 # encoding: [0xc5,0xf8,0x92,0xce]
|
|
|
|
|
; X64-NEXT: vmovsd (%rdi), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x07]
|
|
|
|
|
; X64-NEXT: # xmm0 = mem[0],zero
|
|
|
|
|
; X64-NEXT: vcvtps2qq %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf1,0x7d,0x89,0x7b,0xc0]
|
|
|
|
|
; X64-NEXT: vcvtps2qq (%rdi), %xmm0 {%k1} {z} # encoding: [0x62,0xf1,0x7d,0x89,0x7b,0x07]
|
|
|
|
|
; X64-NEXT: retq # encoding: [0xc3]
|
|
|
|
|
%x0 = load <2 x float>, <2 x float>* %p
|
|
|
|
|
%x0b = shufflevector <2 x float> %x0, <2 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
|
|
|
|
@@ -361,16 +337,12 @@ define <2 x i64> @test_int_x86_avx512_cvt_ps2uqq_128_load(<2 x float>* %p) {
|
|
|
|
|
; X86-LABEL: test_int_x86_avx512_cvt_ps2uqq_128_load:
|
|
|
|
|
; X86: # %bb.0:
|
|
|
|
|
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
|
|
|
|
|
; X86-NEXT: vmovsd (%eax), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x00]
|
|
|
|
|
; X86-NEXT: # xmm0 = mem[0],zero
|
|
|
|
|
; X86-NEXT: vcvtps2uqq %xmm0, %xmm0 # encoding: [0x62,0xf1,0x7d,0x08,0x79,0xc0]
|
|
|
|
|
; X86-NEXT: vcvtps2uqq (%eax), %xmm0 # encoding: [0x62,0xf1,0x7d,0x08,0x79,0x00]
|
|
|
|
|
; X86-NEXT: retl # encoding: [0xc3]
|
|
|
|
|
;
|
|
|
|
|
; X64-LABEL: test_int_x86_avx512_cvt_ps2uqq_128_load:
|
|
|
|
|
; X64: # %bb.0:
|
|
|
|
|
; X64-NEXT: vmovsd (%rdi), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x07]
|
|
|
|
|
; X64-NEXT: # xmm0 = mem[0],zero
|
|
|
|
|
; X64-NEXT: vcvtps2uqq %xmm0, %xmm0 # encoding: [0x62,0xf1,0x7d,0x08,0x79,0xc0]
|
|
|
|
|
; X64-NEXT: vcvtps2uqq (%rdi), %xmm0 # encoding: [0x62,0xf1,0x7d,0x08,0x79,0x07]
|
|
|
|
|
; X64-NEXT: retq # encoding: [0xc3]
|
|
|
|
|
%x0 = load <2 x float>, <2 x float>* %p
|
|
|
|
|
%x0b = shufflevector <2 x float> %x0, <2 x float> zeroinitializer, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
|
|
|
|
@@ -382,18 +354,14 @@ define <2 x i64> @test_int_x86_avx512_mask_cvt_ps2uqq_128_load(<2 x float>* %p,
|
|
|
|
|
; X86-LABEL: test_int_x86_avx512_mask_cvt_ps2uqq_128_load:
|
|
|
|
|
; X86: # %bb.0:
|
|
|
|
|
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
|
|
|
|
|
; X86-NEXT: vmovsd (%eax), %xmm1 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x08]
|
|
|
|
|
; X86-NEXT: # xmm1 = mem[0],zero
|
|
|
|
|
; X86-NEXT: kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x08]
|
|
|
|
|
; X86-NEXT: vcvtps2uqq %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf1,0x7d,0x09,0x79,0xc1]
|
|
|
|
|
; X86-NEXT: vcvtps2uqq (%eax), %xmm0 {%k1} # encoding: [0x62,0xf1,0x7d,0x09,0x79,0x00]
|
|
|
|
|
; X86-NEXT: retl # encoding: [0xc3]
|
|
|
|
|
;
|
|
|
|
|
; X64-LABEL: test_int_x86_avx512_mask_cvt_ps2uqq_128_load:
|
|
|
|
|
; X64: # %bb.0:
|
|
|
|
|
; X64-NEXT: kmovw %esi, %k1 # encoding: [0xc5,0xf8,0x92,0xce]
|
|
|
|
|
; X64-NEXT: vmovsd (%rdi), %xmm1 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x0f]
|
|
|
|
|
; X64-NEXT: # xmm1 = mem[0],zero
|
|
|
|
|
; X64-NEXT: vcvtps2uqq %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf1,0x7d,0x09,0x79,0xc1]
|
|
|
|
|
; X64-NEXT: vcvtps2uqq (%rdi), %xmm0 {%k1} # encoding: [0x62,0xf1,0x7d,0x09,0x79,0x07]
|
|
|
|
|
; X64-NEXT: retq # encoding: [0xc3]
|
|
|
|
|
%x0 = load <2 x float>, <2 x float>* %p
|
|
|
|
|
%x0b = shufflevector <2 x float> %x0, <2 x float> zeroinitializer, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
|
|
|
|
@@ -405,18 +373,14 @@ define <2 x i64> @test_int_x86_avx512_maskz_cvt_ps2uqq_128_load(<2 x float>* %p,
|
|
|
|
|
; X86-LABEL: test_int_x86_avx512_maskz_cvt_ps2uqq_128_load:
|
|
|
|
|
; X86: # %bb.0:
|
|
|
|
|
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
|
|
|
|
|
; X86-NEXT: vmovsd (%eax), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x00]
|
|
|
|
|
; X86-NEXT: # xmm0 = mem[0],zero
|
|
|
|
|
; X86-NEXT: kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x08]
|
|
|
|
|
; X86-NEXT: vcvtps2uqq %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf1,0x7d,0x89,0x79,0xc0]
|
|
|
|
|
; X86-NEXT: vcvtps2uqq (%eax), %xmm0 {%k1} {z} # encoding: [0x62,0xf1,0x7d,0x89,0x79,0x00]
|
|
|
|
|
; X86-NEXT: retl # encoding: [0xc3]
|
|
|
|
|
;
|
|
|
|
|
; X64-LABEL: test_int_x86_avx512_maskz_cvt_ps2uqq_128_load:
|
|
|
|
|
; X64: # %bb.0:
|
|
|
|
|
; X64-NEXT: kmovw %esi, %k1 # encoding: [0xc5,0xf8,0x92,0xce]
|
|
|
|
|
; X64-NEXT: vmovsd (%rdi), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x07]
|
|
|
|
|
; X64-NEXT: # xmm0 = mem[0],zero
|
|
|
|
|
; X64-NEXT: vcvtps2uqq %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf1,0x7d,0x89,0x79,0xc0]
|
|
|
|
|
; X64-NEXT: vcvtps2uqq (%rdi), %xmm0 {%k1} {z} # encoding: [0x62,0xf1,0x7d,0x89,0x79,0x07]
|
|
|
|
|
; X64-NEXT: retq # encoding: [0xc3]
|
|
|
|
|
%x0 = load <2 x float>, <2 x float>* %p
|
|
|
|
|
%x0b = shufflevector <2 x float> %x0, <2 x float> zeroinitializer, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
|
|
|
|
@@ -428,16 +392,12 @@ define <2 x i64> @test_int_x86_avx512_cvt_ps2uqq_128_load_2(<2 x float>* %p) {
|
|
|
|
|
; X86-LABEL: test_int_x86_avx512_cvt_ps2uqq_128_load_2:
|
|
|
|
|
; X86: # %bb.0:
|
|
|
|
|
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
|
|
|
|
|
; X86-NEXT: vmovsd (%eax), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x00]
|
|
|
|
|
; X86-NEXT: # xmm0 = mem[0],zero
|
|
|
|
|
; X86-NEXT: vcvtps2uqq %xmm0, %xmm0 # encoding: [0x62,0xf1,0x7d,0x08,0x79,0xc0]
|
|
|
|
|
; X86-NEXT: vcvtps2uqq (%eax), %xmm0 # encoding: [0x62,0xf1,0x7d,0x08,0x79,0x00]
|
|
|
|
|
; X86-NEXT: retl # encoding: [0xc3]
|
|
|
|
|
;
|
|
|
|
|
; X64-LABEL: test_int_x86_avx512_cvt_ps2uqq_128_load_2:
|
|
|
|
|
; X64: # %bb.0:
|
|
|
|
|
; X64-NEXT: vmovsd (%rdi), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x07]
|
|
|
|
|
; X64-NEXT: # xmm0 = mem[0],zero
|
|
|
|
|
; X64-NEXT: vcvtps2uqq %xmm0, %xmm0 # encoding: [0x62,0xf1,0x7d,0x08,0x79,0xc0]
|
|
|
|
|
; X64-NEXT: vcvtps2uqq (%rdi), %xmm0 # encoding: [0x62,0xf1,0x7d,0x08,0x79,0x07]
|
|
|
|
|
; X64-NEXT: retq # encoding: [0xc3]
|
|
|
|
|
%x0 = load <2 x float>, <2 x float>* %p
|
|
|
|
|
%x0b = shufflevector <2 x float> %x0, <2 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
|
|
|
|
@@ -449,18 +409,14 @@ define <2 x i64> @test_int_x86_avx512_mask_cvt_ps2uqq_128_load_2(<2 x float>* %p
|
|
|
|
|
; X86-LABEL: test_int_x86_avx512_mask_cvt_ps2uqq_128_load_2:
|
|
|
|
|
; X86: # %bb.0:
|
|
|
|
|
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
|
|
|
|
|
; X86-NEXT: vmovsd (%eax), %xmm1 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x08]
|
|
|
|
|
; X86-NEXT: # xmm1 = mem[0],zero
|
|
|
|
|
; X86-NEXT: kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x08]
|
|
|
|
|
; X86-NEXT: vcvtps2uqq %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf1,0x7d,0x09,0x79,0xc1]
|
|
|
|
|
; X86-NEXT: vcvtps2uqq (%eax), %xmm0 {%k1} # encoding: [0x62,0xf1,0x7d,0x09,0x79,0x00]
|
|
|
|
|
; X86-NEXT: retl # encoding: [0xc3]
|
|
|
|
|
;
|
|
|
|
|
; X64-LABEL: test_int_x86_avx512_mask_cvt_ps2uqq_128_load_2:
|
|
|
|
|
; X64: # %bb.0:
|
|
|
|
|
; X64-NEXT: kmovw %esi, %k1 # encoding: [0xc5,0xf8,0x92,0xce]
|
|
|
|
|
; X64-NEXT: vmovsd (%rdi), %xmm1 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x0f]
|
|
|
|
|
; X64-NEXT: # xmm1 = mem[0],zero
|
|
|
|
|
; X64-NEXT: vcvtps2uqq %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf1,0x7d,0x09,0x79,0xc1]
|
|
|
|
|
; X64-NEXT: vcvtps2uqq (%rdi), %xmm0 {%k1} # encoding: [0x62,0xf1,0x7d,0x09,0x79,0x07]
|
|
|
|
|
; X64-NEXT: retq # encoding: [0xc3]
|
|
|
|
|
%x0 = load <2 x float>, <2 x float>* %p
|
|
|
|
|
%x0b = shufflevector <2 x float> %x0, <2 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
|
|
|
|
@@ -472,18 +428,14 @@ define <2 x i64> @test_int_x86_avx512_maskz_cvt_ps2uqq_128_load_2(<2 x float>* %
|
|
|
|
|
; X86-LABEL: test_int_x86_avx512_maskz_cvt_ps2uqq_128_load_2:
|
|
|
|
|
; X86: # %bb.0:
|
|
|
|
|
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
|
|
|
|
|
; X86-NEXT: vmovsd (%eax), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x00]
|
|
|
|
|
; X86-NEXT: # xmm0 = mem[0],zero
|
|
|
|
|
; X86-NEXT: kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x08]
|
|
|
|
|
; X86-NEXT: vcvtps2uqq %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf1,0x7d,0x89,0x79,0xc0]
|
|
|
|
|
; X86-NEXT: vcvtps2uqq (%eax), %xmm0 {%k1} {z} # encoding: [0x62,0xf1,0x7d,0x89,0x79,0x00]
|
|
|
|
|
; X86-NEXT: retl # encoding: [0xc3]
|
|
|
|
|
;
|
|
|
|
|
; X64-LABEL: test_int_x86_avx512_maskz_cvt_ps2uqq_128_load_2:
|
|
|
|
|
; X64: # %bb.0:
|
|
|
|
|
; X64-NEXT: kmovw %esi, %k1 # encoding: [0xc5,0xf8,0x92,0xce]
|
|
|
|
|
; X64-NEXT: vmovsd (%rdi), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x07]
|
|
|
|
|
; X64-NEXT: # xmm0 = mem[0],zero
|
|
|
|
|
; X64-NEXT: vcvtps2uqq %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf1,0x7d,0x89,0x79,0xc0]
|
|
|
|
|
; X64-NEXT: vcvtps2uqq (%rdi), %xmm0 {%k1} {z} # encoding: [0x62,0xf1,0x7d,0x89,0x79,0x07]
|
|
|
|
|
; X64-NEXT: retq # encoding: [0xc3]
|
|
|
|
|
%x0 = load <2 x float>, <2 x float>* %p
|
|
|
|
|
%x0b = shufflevector <2 x float> %x0, <2 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
|
|
|
|
@@ -766,16 +718,12 @@ define <2 x i64> @test_int_x86_avx512_cvtt_ps2qq_128_load(<2 x float>* %p) {
|
|
|
|
|
; X86-LABEL: test_int_x86_avx512_cvtt_ps2qq_128_load:
|
|
|
|
|
; X86: # %bb.0:
|
|
|
|
|
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
|
|
|
|
|
; X86-NEXT: vmovsd (%eax), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x00]
|
|
|
|
|
; X86-NEXT: # xmm0 = mem[0],zero
|
|
|
|
|
; X86-NEXT: vcvttps2qq %xmm0, %xmm0 # encoding: [0x62,0xf1,0x7d,0x08,0x7a,0xc0]
|
|
|
|
|
; X86-NEXT: vcvttps2qq (%eax), %xmm0 # encoding: [0x62,0xf1,0x7d,0x08,0x7a,0x00]
|
|
|
|
|
; X86-NEXT: retl # encoding: [0xc3]
|
|
|
|
|
;
|
|
|
|
|
; X64-LABEL: test_int_x86_avx512_cvtt_ps2qq_128_load:
|
|
|
|
|
; X64: # %bb.0:
|
|
|
|
|
; X64-NEXT: vmovsd (%rdi), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x07]
|
|
|
|
|
; X64-NEXT: # xmm0 = mem[0],zero
|
|
|
|
|
; X64-NEXT: vcvttps2qq %xmm0, %xmm0 # encoding: [0x62,0xf1,0x7d,0x08,0x7a,0xc0]
|
|
|
|
|
; X64-NEXT: vcvttps2qq (%rdi), %xmm0 # encoding: [0x62,0xf1,0x7d,0x08,0x7a,0x07]
|
|
|
|
|
; X64-NEXT: retq # encoding: [0xc3]
|
|
|
|
|
%x0 = load <2 x float>, <2 x float>* %p
|
|
|
|
|
%x0b = shufflevector <2 x float> %x0, <2 x float> zeroinitializer, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
|
|
|
|
@@ -787,18 +735,14 @@ define <2 x i64> @test_int_x86_avx512_mask_cvtt_ps2qq_128_load(<2 x float>* %p,
|
|
|
|
|
; X86-LABEL: test_int_x86_avx512_mask_cvtt_ps2qq_128_load:
|
|
|
|
|
; X86: # %bb.0:
|
|
|
|
|
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
|
|
|
|
|
; X86-NEXT: vmovsd (%eax), %xmm1 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x08]
|
|
|
|
|
; X86-NEXT: # xmm1 = mem[0],zero
|
|
|
|
|
; X86-NEXT: kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x08]
|
|
|
|
|
; X86-NEXT: vcvttps2qq %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf1,0x7d,0x09,0x7a,0xc1]
|
|
|
|
|
; X86-NEXT: vcvttps2qq (%eax), %xmm0 {%k1} # encoding: [0x62,0xf1,0x7d,0x09,0x7a,0x00]
|
|
|
|
|
; X86-NEXT: retl # encoding: [0xc3]
|
|
|
|
|
;
|
|
|
|
|
; X64-LABEL: test_int_x86_avx512_mask_cvtt_ps2qq_128_load:
|
|
|
|
|
; X64: # %bb.0:
|
|
|
|
|
; X64-NEXT: kmovw %esi, %k1 # encoding: [0xc5,0xf8,0x92,0xce]
|
|
|
|
|
; X64-NEXT: vmovsd (%rdi), %xmm1 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x0f]
|
|
|
|
|
; X64-NEXT: # xmm1 = mem[0],zero
|
|
|
|
|
; X64-NEXT: vcvttps2qq %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf1,0x7d,0x09,0x7a,0xc1]
|
|
|
|
|
; X64-NEXT: vcvttps2qq (%rdi), %xmm0 {%k1} # encoding: [0x62,0xf1,0x7d,0x09,0x7a,0x07]
|
|
|
|
|
; X64-NEXT: retq # encoding: [0xc3]
|
|
|
|
|
%x0 = load <2 x float>, <2 x float>* %p
|
|
|
|
|
%x0b = shufflevector <2 x float> %x0, <2 x float> zeroinitializer, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
|
|
|
|
@@ -810,18 +754,14 @@ define <2 x i64> @test_int_x86_avx512_maskz_cvtt_ps2qq_128_load(<2 x float>* %p,
|
|
|
|
|
; X86-LABEL: test_int_x86_avx512_maskz_cvtt_ps2qq_128_load:
|
|
|
|
|
; X86: # %bb.0:
|
|
|
|
|
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
|
|
|
|
|
; X86-NEXT: vmovsd (%eax), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x00]
|
|
|
|
|
; X86-NEXT: # xmm0 = mem[0],zero
|
|
|
|
|
; X86-NEXT: kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x08]
|
|
|
|
|
; X86-NEXT: vcvttps2qq %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf1,0x7d,0x89,0x7a,0xc0]
|
|
|
|
|
; X86-NEXT: vcvttps2qq (%eax), %xmm0 {%k1} {z} # encoding: [0x62,0xf1,0x7d,0x89,0x7a,0x00]
|
|
|
|
|
; X86-NEXT: retl # encoding: [0xc3]
|
|
|
|
|
;
|
|
|
|
|
; X64-LABEL: test_int_x86_avx512_maskz_cvtt_ps2qq_128_load:
|
|
|
|
|
; X64: # %bb.0:
|
|
|
|
|
; X64-NEXT: kmovw %esi, %k1 # encoding: [0xc5,0xf8,0x92,0xce]
|
|
|
|
|
; X64-NEXT: vmovsd (%rdi), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x07]
|
|
|
|
|
; X64-NEXT: # xmm0 = mem[0],zero
|
|
|
|
|
; X64-NEXT: vcvttps2qq %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf1,0x7d,0x89,0x7a,0xc0]
|
|
|
|
|
; X64-NEXT: vcvttps2qq (%rdi), %xmm0 {%k1} {z} # encoding: [0x62,0xf1,0x7d,0x89,0x7a,0x07]
|
|
|
|
|
; X64-NEXT: retq # encoding: [0xc3]
|
|
|
|
|
%x0 = load <2 x float>, <2 x float>* %p
|
|
|
|
|
%x0b = shufflevector <2 x float> %x0, <2 x float> zeroinitializer, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
|
|
|
|
@@ -834,16 +774,12 @@ define <2 x i64> @test_int_x86_avx512_cvtt_ps2qq_128_load_2(<2 x float>* %p) {
|
|
|
|
|
; X86-LABEL: test_int_x86_avx512_cvtt_ps2qq_128_load_2:
|
|
|
|
|
; X86: # %bb.0:
|
|
|
|
|
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
|
|
|
|
|
; X86-NEXT: vmovsd (%eax), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x00]
|
|
|
|
|
; X86-NEXT: # xmm0 = mem[0],zero
|
|
|
|
|
; X86-NEXT: vcvttps2qq %xmm0, %xmm0 # encoding: [0x62,0xf1,0x7d,0x08,0x7a,0xc0]
|
|
|
|
|
; X86-NEXT: vcvttps2qq (%eax), %xmm0 # encoding: [0x62,0xf1,0x7d,0x08,0x7a,0x00]
|
|
|
|
|
; X86-NEXT: retl # encoding: [0xc3]
|
|
|
|
|
;
|
|
|
|
|
; X64-LABEL: test_int_x86_avx512_cvtt_ps2qq_128_load_2:
|
|
|
|
|
; X64: # %bb.0:
|
|
|
|
|
; X64-NEXT: vmovsd (%rdi), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x07]
|
|
|
|
|
; X64-NEXT: # xmm0 = mem[0],zero
|
|
|
|
|
; X64-NEXT: vcvttps2qq %xmm0, %xmm0 # encoding: [0x62,0xf1,0x7d,0x08,0x7a,0xc0]
|
|
|
|
|
; X64-NEXT: vcvttps2qq (%rdi), %xmm0 # encoding: [0x62,0xf1,0x7d,0x08,0x7a,0x07]
|
|
|
|
|
; X64-NEXT: retq # encoding: [0xc3]
|
|
|
|
|
%x0 = load <2 x float>, <2 x float>* %p
|
|
|
|
|
%x0b = shufflevector <2 x float> %x0, <2 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
|
|
|
|
@@ -855,18 +791,14 @@ define <2 x i64> @test_int_x86_avx512_mask_cvtt_ps2qq_128_load_2(<2 x float>* %p
|
|
|
|
|
; X86-LABEL: test_int_x86_avx512_mask_cvtt_ps2qq_128_load_2:
|
|
|
|
|
; X86: # %bb.0:
|
|
|
|
|
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
|
|
|
|
|
; X86-NEXT: vmovsd (%eax), %xmm1 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x08]
|
|
|
|
|
; X86-NEXT: # xmm1 = mem[0],zero
|
|
|
|
|
; X86-NEXT: kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x08]
|
|
|
|
|
; X86-NEXT: vcvttps2qq %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf1,0x7d,0x09,0x7a,0xc1]
|
|
|
|
|
; X86-NEXT: vcvttps2qq (%eax), %xmm0 {%k1} # encoding: [0x62,0xf1,0x7d,0x09,0x7a,0x00]
|
|
|
|
|
; X86-NEXT: retl # encoding: [0xc3]
|
|
|
|
|
;
|
|
|
|
|
; X64-LABEL: test_int_x86_avx512_mask_cvtt_ps2qq_128_load_2:
|
|
|
|
|
; X64: # %bb.0:
|
|
|
|
|
; X64-NEXT: kmovw %esi, %k1 # encoding: [0xc5,0xf8,0x92,0xce]
|
|
|
|
|
; X64-NEXT: vmovsd (%rdi), %xmm1 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x0f]
|
|
|
|
|
; X64-NEXT: # xmm1 = mem[0],zero
|
|
|
|
|
; X64-NEXT: vcvttps2qq %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf1,0x7d,0x09,0x7a,0xc1]
|
|
|
|
|
; X64-NEXT: vcvttps2qq (%rdi), %xmm0 {%k1} # encoding: [0x62,0xf1,0x7d,0x09,0x7a,0x07]
|
|
|
|
|
; X64-NEXT: retq # encoding: [0xc3]
|
|
|
|
|
%x0 = load <2 x float>, <2 x float>* %p
|
|
|
|
|
%x0b = shufflevector <2 x float> %x0, <2 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
|
|
|
|
@@ -878,18 +810,14 @@ define <2 x i64> @test_int_x86_avx512_maskz_cvtt_ps2qq_128_load_2(<2 x float>* %
|
|
|
|
|
; X86-LABEL: test_int_x86_avx512_maskz_cvtt_ps2qq_128_load_2:
|
|
|
|
|
; X86: # %bb.0:
|
|
|
|
|
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
|
|
|
|
|
; X86-NEXT: vmovsd (%eax), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x00]
|
|
|
|
|
; X86-NEXT: # xmm0 = mem[0],zero
|
|
|
|
|
; X86-NEXT: kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x08]
|
|
|
|
|
; X86-NEXT: vcvttps2qq %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf1,0x7d,0x89,0x7a,0xc0]
|
|
|
|
|
; X86-NEXT: vcvttps2qq (%eax), %xmm0 {%k1} {z} # encoding: [0x62,0xf1,0x7d,0x89,0x7a,0x00]
|
|
|
|
|
; X86-NEXT: retl # encoding: [0xc3]
|
|
|
|
|
;
|
|
|
|
|
; X64-LABEL: test_int_x86_avx512_maskz_cvtt_ps2qq_128_load_2:
|
|
|
|
|
; X64: # %bb.0:
|
|
|
|
|
; X64-NEXT: kmovw %esi, %k1 # encoding: [0xc5,0xf8,0x92,0xce]
|
|
|
|
|
; X64-NEXT: vmovsd (%rdi), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x07]
|
|
|
|
|
; X64-NEXT: # xmm0 = mem[0],zero
|
|
|
|
|
; X64-NEXT: vcvttps2qq %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf1,0x7d,0x89,0x7a,0xc0]
|
|
|
|
|
; X64-NEXT: vcvttps2qq (%rdi), %xmm0 {%k1} {z} # encoding: [0x62,0xf1,0x7d,0x89,0x7a,0x07]
|
|
|
|
|
; X64-NEXT: retq # encoding: [0xc3]
|
|
|
|
|
%x0 = load <2 x float>, <2 x float>* %p
|
|
|
|
|
%x0b = shufflevector <2 x float> %x0, <2 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
|
|
|
|
@@ -1078,16 +1006,12 @@ define <2 x i64> @test_int_x86_avx512_cvtt_ps2uqq_128_load(<2 x float>* %p) {
|
|
|
|
|
; X86-LABEL: test_int_x86_avx512_cvtt_ps2uqq_128_load:
|
|
|
|
|
; X86: # %bb.0:
|
|
|
|
|
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
|
|
|
|
|
; X86-NEXT: vmovsd (%eax), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x00]
|
|
|
|
|
; X86-NEXT: # xmm0 = mem[0],zero
|
|
|
|
|
; X86-NEXT: vcvttps2uqq %xmm0, %xmm0 # encoding: [0x62,0xf1,0x7d,0x08,0x78,0xc0]
|
|
|
|
|
; X86-NEXT: vcvttps2uqq (%eax), %xmm0 # encoding: [0x62,0xf1,0x7d,0x08,0x78,0x00]
|
|
|
|
|
; X86-NEXT: retl # encoding: [0xc3]
|
|
|
|
|
;
|
|
|
|
|
; X64-LABEL: test_int_x86_avx512_cvtt_ps2uqq_128_load:
|
|
|
|
|
; X64: # %bb.0:
|
|
|
|
|
; X64-NEXT: vmovsd (%rdi), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x07]
|
|
|
|
|
; X64-NEXT: # xmm0 = mem[0],zero
|
|
|
|
|
; X64-NEXT: vcvttps2uqq %xmm0, %xmm0 # encoding: [0x62,0xf1,0x7d,0x08,0x78,0xc0]
|
|
|
|
|
; X64-NEXT: vcvttps2uqq (%rdi), %xmm0 # encoding: [0x62,0xf1,0x7d,0x08,0x78,0x07]
|
|
|
|
|
; X64-NEXT: retq # encoding: [0xc3]
|
|
|
|
|
%x0 = load <2 x float>, <2 x float>* %p
|
|
|
|
|
%x0b = shufflevector <2 x float> %x0, <2 x float> zeroinitializer, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
|
|
|
|
@@ -1099,18 +1023,14 @@ define <2 x i64> @test_int_x86_avx512_mask_cvtt_ps2uqq_128_load(<2 x float>* %p,
|
|
|
|
|
; X86-LABEL: test_int_x86_avx512_mask_cvtt_ps2uqq_128_load:
|
|
|
|
|
; X86: # %bb.0:
|
|
|
|
|
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
|
|
|
|
|
; X86-NEXT: vmovsd (%eax), %xmm1 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x08]
|
|
|
|
|
; X86-NEXT: # xmm1 = mem[0],zero
|
|
|
|
|
; X86-NEXT: kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x08]
|
|
|
|
|
; X86-NEXT: vcvttps2uqq %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf1,0x7d,0x09,0x78,0xc1]
|
|
|
|
|
; X86-NEXT: vcvttps2uqq (%eax), %xmm0 {%k1} # encoding: [0x62,0xf1,0x7d,0x09,0x78,0x00]
|
|
|
|
|
; X86-NEXT: retl # encoding: [0xc3]
|
|
|
|
|
;
|
|
|
|
|
; X64-LABEL: test_int_x86_avx512_mask_cvtt_ps2uqq_128_load:
|
|
|
|
|
; X64: # %bb.0:
|
|
|
|
|
; X64-NEXT: kmovw %esi, %k1 # encoding: [0xc5,0xf8,0x92,0xce]
|
|
|
|
|
; X64-NEXT: vmovsd (%rdi), %xmm1 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x0f]
|
|
|
|
|
; X64-NEXT: # xmm1 = mem[0],zero
|
|
|
|
|
; X64-NEXT: vcvttps2uqq %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf1,0x7d,0x09,0x78,0xc1]
|
|
|
|
|
; X64-NEXT: vcvttps2uqq (%rdi), %xmm0 {%k1} # encoding: [0x62,0xf1,0x7d,0x09,0x78,0x07]
|
|
|
|
|
; X64-NEXT: retq # encoding: [0xc3]
|
|
|
|
|
%x0 = load <2 x float>, <2 x float>* %p
|
|
|
|
|
%x0b = shufflevector <2 x float> %x0, <2 x float> zeroinitializer, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
|
|
|
|
@@ -1122,18 +1042,14 @@ define <2 x i64> @test_int_x86_avx512_maskz_cvtt_ps2uqq_128_load(<2 x float>* %p
|
|
|
|
|
; X86-LABEL: test_int_x86_avx512_maskz_cvtt_ps2uqq_128_load:
|
|
|
|
|
; X86: # %bb.0:
|
|
|
|
|
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
|
|
|
|
|
; X86-NEXT: vmovsd (%eax), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x00]
|
|
|
|
|
; X86-NEXT: # xmm0 = mem[0],zero
|
|
|
|
|
; X86-NEXT: kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x08]
|
|
|
|
|
; X86-NEXT: vcvttps2uqq %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf1,0x7d,0x89,0x78,0xc0]
|
|
|
|
|
; X86-NEXT: vcvttps2uqq (%eax), %xmm0 {%k1} {z} # encoding: [0x62,0xf1,0x7d,0x89,0x78,0x00]
|
|
|
|
|
; X86-NEXT: retl # encoding: [0xc3]
|
|
|
|
|
;
|
|
|
|
|
; X64-LABEL: test_int_x86_avx512_maskz_cvtt_ps2uqq_128_load:
|
|
|
|
|
; X64: # %bb.0:
|
|
|
|
|
; X64-NEXT: kmovw %esi, %k1 # encoding: [0xc5,0xf8,0x92,0xce]
|
|
|
|
|
; X64-NEXT: vmovsd (%rdi), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x07]
|
|
|
|
|
; X64-NEXT: # xmm0 = mem[0],zero
|
|
|
|
|
; X64-NEXT: vcvttps2uqq %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf1,0x7d,0x89,0x78,0xc0]
|
|
|
|
|
; X64-NEXT: vcvttps2uqq (%rdi), %xmm0 {%k1} {z} # encoding: [0x62,0xf1,0x7d,0x89,0x78,0x07]
|
|
|
|
|
; X64-NEXT: retq # encoding: [0xc3]
|
|
|
|
|
%x0 = load <2 x float>, <2 x float>* %p
|
|
|
|
|
%x0b = shufflevector <2 x float> %x0, <2 x float> zeroinitializer, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
|
|
|
|
@@ -1146,16 +1062,12 @@ define <2 x i64> @test_int_x86_avx512_cvtt_ps2uqq_128_load_2(<2 x float>* %p) {
|
|
|
|
|
; X86-LABEL: test_int_x86_avx512_cvtt_ps2uqq_128_load_2:
|
|
|
|
|
; X86: # %bb.0:
|
|
|
|
|
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
|
|
|
|
|
; X86-NEXT: vmovsd (%eax), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x00]
|
|
|
|
|
; X86-NEXT: # xmm0 = mem[0],zero
|
|
|
|
|
; X86-NEXT: vcvttps2uqq %xmm0, %xmm0 # encoding: [0x62,0xf1,0x7d,0x08,0x78,0xc0]
|
|
|
|
|
; X86-NEXT: vcvttps2uqq (%eax), %xmm0 # encoding: [0x62,0xf1,0x7d,0x08,0x78,0x00]
|
|
|
|
|
; X86-NEXT: retl # encoding: [0xc3]
|
|
|
|
|
;
|
|
|
|
|
; X64-LABEL: test_int_x86_avx512_cvtt_ps2uqq_128_load_2:
|
|
|
|
|
; X64: # %bb.0:
|
|
|
|
|
; X64-NEXT: vmovsd (%rdi), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x07]
|
|
|
|
|
; X64-NEXT: # xmm0 = mem[0],zero
|
|
|
|
|
; X64-NEXT: vcvttps2uqq %xmm0, %xmm0 # encoding: [0x62,0xf1,0x7d,0x08,0x78,0xc0]
|
|
|
|
|
; X64-NEXT: vcvttps2uqq (%rdi), %xmm0 # encoding: [0x62,0xf1,0x7d,0x08,0x78,0x07]
|
|
|
|
|
; X64-NEXT: retq # encoding: [0xc3]
|
|
|
|
|
%x0 = load <2 x float>, <2 x float>* %p
|
|
|
|
|
%x0b = shufflevector <2 x float> %x0, <2 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
|
|
|
|
@@ -1167,18 +1079,14 @@ define <2 x i64> @test_int_x86_avx512_mask_cvtt_ps2uqq_128_load_2(<2 x float>* %
|
|
|
|
|
; X86-LABEL: test_int_x86_avx512_mask_cvtt_ps2uqq_128_load_2:
|
|
|
|
|
; X86: # %bb.0:
|
|
|
|
|
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
|
|
|
|
|
; X86-NEXT: vmovsd (%eax), %xmm1 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x08]
|
|
|
|
|
; X86-NEXT: # xmm1 = mem[0],zero
|
|
|
|
|
; X86-NEXT: kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x08]
|
|
|
|
|
; X86-NEXT: vcvttps2uqq %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf1,0x7d,0x09,0x78,0xc1]
|
|
|
|
|
; X86-NEXT: vcvttps2uqq (%eax), %xmm0 {%k1} # encoding: [0x62,0xf1,0x7d,0x09,0x78,0x00]
|
|
|
|
|
; X86-NEXT: retl # encoding: [0xc3]
|
|
|
|
|
;
|
|
|
|
|
; X64-LABEL: test_int_x86_avx512_mask_cvtt_ps2uqq_128_load_2:
|
|
|
|
|
; X64: # %bb.0:
|
|
|
|
|
; X64-NEXT: kmovw %esi, %k1 # encoding: [0xc5,0xf8,0x92,0xce]
|
|
|
|
|
; X64-NEXT: vmovsd (%rdi), %xmm1 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x0f]
|
|
|
|
|
; X64-NEXT: # xmm1 = mem[0],zero
|
|
|
|
|
; X64-NEXT: vcvttps2uqq %xmm1, %xmm0 {%k1} # encoding: [0x62,0xf1,0x7d,0x09,0x78,0xc1]
|
|
|
|
|
; X64-NEXT: vcvttps2uqq (%rdi), %xmm0 {%k1} # encoding: [0x62,0xf1,0x7d,0x09,0x78,0x07]
|
|
|
|
|
; X64-NEXT: retq # encoding: [0xc3]
|
|
|
|
|
%x0 = load <2 x float>, <2 x float>* %p
|
|
|
|
|
%x0b = shufflevector <2 x float> %x0, <2 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
|
|
|
|
@@ -1190,18 +1098,14 @@ define <2 x i64> @test_int_x86_avx512_maskz_cvtt_ps2uqq_128_load_2(<2 x float>*
|
|
|
|
|
; X86-LABEL: test_int_x86_avx512_maskz_cvtt_ps2uqq_128_load_2:
|
|
|
|
|
; X86: # %bb.0:
|
|
|
|
|
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
|
|
|
|
|
; X86-NEXT: vmovsd (%eax), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x00]
|
|
|
|
|
; X86-NEXT: # xmm0 = mem[0],zero
|
|
|
|
|
; X86-NEXT: kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x08]
|
|
|
|
|
; X86-NEXT: vcvttps2uqq %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf1,0x7d,0x89,0x78,0xc0]
|
|
|
|
|
; X86-NEXT: vcvttps2uqq (%eax), %xmm0 {%k1} {z} # encoding: [0x62,0xf1,0x7d,0x89,0x78,0x00]
|
|
|
|
|
; X86-NEXT: retl # encoding: [0xc3]
|
|
|
|
|
;
|
|
|
|
|
; X64-LABEL: test_int_x86_avx512_maskz_cvtt_ps2uqq_128_load_2:
|
|
|
|
|
; X64: # %bb.0:
|
|
|
|
|
; X64-NEXT: kmovw %esi, %k1 # encoding: [0xc5,0xf8,0x92,0xce]
|
|
|
|
|
; X64-NEXT: vmovsd (%rdi), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x07]
|
|
|
|
|
; X64-NEXT: # xmm0 = mem[0],zero
|
|
|
|
|
; X64-NEXT: vcvttps2uqq %xmm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf1,0x7d,0x89,0x78,0xc0]
|
|
|
|
|
; X64-NEXT: vcvttps2uqq (%rdi), %xmm0 {%k1} {z} # encoding: [0x62,0xf1,0x7d,0x89,0x78,0x07]
|
|
|
|
|
; X64-NEXT: retq # encoding: [0xc3]
|
|
|
|
|
%x0 = load <2 x float>, <2 x float>* %p
|
|
|
|
|
%x0b = shufflevector <2 x float> %x0, <2 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
|
|
|
|
|