mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-20 03:23:01 +02:00
[X86] Use SSE_INTMUL_ITINS_P for the AVX-512 MUL instructions to match their SSE/AVX counterparts.
llvm-svn: 321451
This commit is contained in:
parent
ccab687ac6
commit
a225ee1dea
@ -4420,12 +4420,12 @@ defm VPADDUS : avx512_binop_rm_vl_bw<0xDC, 0xDD, "vpaddus", X86addus,
|
||||
defm VPSUBUS : avx512_binop_rm_vl_bw<0xD8, 0xD9, "vpsubus", X86subus,
|
||||
SSE_INTALU_ITINS_P, HasBWI, 0>;
|
||||
defm VPMULLD : avx512_binop_rm_vl_d<0x40, "vpmulld", mul,
|
||||
SSE_INTALU_ITINS_P, HasAVX512, 1>, T8PD;
|
||||
SSE_INTMUL_ITINS_P, HasAVX512, 1>, T8PD;
|
||||
defm VPMULLW : avx512_binop_rm_vl_w<0xD5, "vpmullw", mul,
|
||||
SSE_INTALU_ITINS_P, HasBWI, 1>;
|
||||
SSE_INTMUL_ITINS_P, HasBWI, 1>;
|
||||
defm VPMULLQ : avx512_binop_rm_vl_q<0x40, "vpmullq", mul,
|
||||
SSE_INTALU_ITINS_P, HasDQI, 1>, T8PD;
|
||||
defm VPMULHW : avx512_binop_rm_vl_w<0xE5, "vpmulhw", mulhs, SSE_INTALU_ITINS_P,
|
||||
SSE_INTMUL_ITINS_P, HasDQI, 1>, T8PD;
|
||||
defm VPMULHW : avx512_binop_rm_vl_w<0xE5, "vpmulhw", mulhs, SSE_INTMUL_ITINS_P,
|
||||
HasBWI, 1>;
|
||||
defm VPMULHUW : avx512_binop_rm_vl_w<0xE4, "vpmulhuw", mulhu, SSE_INTMUL_ITINS_P,
|
||||
HasBWI, 1>;
|
||||
@ -4454,7 +4454,7 @@ multiclass avx512_binop_all<bits<8> opc, string OpcodeStr, OpndItins itins,
|
||||
}
|
||||
}
|
||||
|
||||
defm VPMULDQ : avx512_binop_all<0x28, "vpmuldq", SSE_INTALU_ITINS_P,
|
||||
defm VPMULDQ : avx512_binop_all<0x28, "vpmuldq", SSE_INTMUL_ITINS_P,
|
||||
avx512vl_i32_info, avx512vl_i64_info,
|
||||
X86pmuldq, HasAVX512, 1>,T8PD;
|
||||
defm VPMULUDQ : avx512_binop_all<0xF4, "vpmuludq", SSE_INTMUL_ITINS_P,
|
||||
|
@ -129,7 +129,7 @@ entry:
|
||||
define <8 x i64> @imulq512(<8 x i64> %y, <8 x i64> %x) {
|
||||
; GENERIC-LABEL: imulq512:
|
||||
; GENERIC: # %bb.0:
|
||||
; GENERIC-NEXT: vpmullq %zmm0, %zmm1, %zmm0 # sched: [3:1.00]
|
||||
; GENERIC-NEXT: vpmullq %zmm0, %zmm1, %zmm0 # sched: [5:1.00]
|
||||
; GENERIC-NEXT: retq # sched: [1:1.00]
|
||||
;
|
||||
; SKX-LABEL: imulq512:
|
||||
@ -143,7 +143,7 @@ define <8 x i64> @imulq512(<8 x i64> %y, <8 x i64> %x) {
|
||||
define <4 x i64> @imulq256(<4 x i64> %y, <4 x i64> %x) {
|
||||
; GENERIC-LABEL: imulq256:
|
||||
; GENERIC: # %bb.0:
|
||||
; GENERIC-NEXT: vpmullq %ymm0, %ymm1, %ymm0 # sched: [3:1.00]
|
||||
; GENERIC-NEXT: vpmullq %ymm0, %ymm1, %ymm0 # sched: [5:1.00]
|
||||
; GENERIC-NEXT: retq # sched: [1:1.00]
|
||||
;
|
||||
; SKX-LABEL: imulq256:
|
||||
@ -157,7 +157,7 @@ define <4 x i64> @imulq256(<4 x i64> %y, <4 x i64> %x) {
|
||||
define <2 x i64> @imulq128(<2 x i64> %y, <2 x i64> %x) {
|
||||
; GENERIC-LABEL: imulq128:
|
||||
; GENERIC: # %bb.0:
|
||||
; GENERIC-NEXT: vpmullq %xmm0, %xmm1, %xmm0 # sched: [3:1.00]
|
||||
; GENERIC-NEXT: vpmullq %xmm0, %xmm1, %xmm0 # sched: [5:1.00]
|
||||
; GENERIC-NEXT: retq # sched: [1:1.00]
|
||||
;
|
||||
; SKX-LABEL: imulq128:
|
||||
@ -550,7 +550,7 @@ define <16 x i32> @vpsubd_test(<16 x i32> %i, <16 x i32> %j) nounwind readnone {
|
||||
define <16 x i32> @vpmulld_test(<16 x i32> %i, <16 x i32> %j) {
|
||||
; GENERIC-LABEL: vpmulld_test:
|
||||
; GENERIC: # %bb.0:
|
||||
; GENERIC-NEXT: vpmulld %zmm1, %zmm0, %zmm0 # sched: [3:1.00]
|
||||
; GENERIC-NEXT: vpmulld %zmm1, %zmm0, %zmm0 # sched: [5:1.00]
|
||||
; GENERIC-NEXT: retq # sched: [1:1.00]
|
||||
;
|
||||
; SKX-LABEL: vpmulld_test:
|
||||
|
Loading…
Reference in New Issue
Block a user