@@ -3951,7 +3951,6 @@ define void @vec512_i8_widen_to_i16_factor2_broadcast_to_v32i16_factor32(ptr %in
3951
3951
; AVX512F-LABEL: vec512_i8_widen_to_i16_factor2_broadcast_to_v32i16_factor32:
3952
3952
; AVX512F: # %bb.0:
3953
3953
; AVX512F-NEXT: vpbroadcastb (%rdi), %ymm0
3954
- ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm0
3955
3954
; AVX512F-NEXT: vpaddb 32(%rsi), %ymm0, %ymm1
3956
3955
; AVX512F-NEXT: vpaddb (%rsi), %ymm0, %ymm0
3957
3956
; AVX512F-NEXT: vmovdqa %ymm0, (%rdx)
@@ -3962,7 +3961,6 @@ define void @vec512_i8_widen_to_i16_factor2_broadcast_to_v32i16_factor32(ptr %in
3962
3961
; AVX512DQ-LABEL: vec512_i8_widen_to_i16_factor2_broadcast_to_v32i16_factor32:
3963
3962
; AVX512DQ: # %bb.0:
3964
3963
; AVX512DQ-NEXT: vpbroadcastb (%rdi), %ymm0
3965
- ; AVX512DQ-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm0
3966
3964
; AVX512DQ-NEXT: vpaddb 32(%rsi), %ymm0, %ymm1
3967
3965
; AVX512DQ-NEXT: vpaddb (%rsi), %ymm0, %ymm0
3968
3966
; AVX512DQ-NEXT: vmovdqa %ymm0, (%rdx)
@@ -4004,7 +4002,7 @@ define void @vec512_i8_widen_to_i32_factor4_broadcast_to_v16i32_factor16(ptr %in
4004
4002
;
4005
4003
; AVX-LABEL: vec512_i8_widen_to_i32_factor4_broadcast_to_v16i32_factor16:
4006
4004
; AVX: # %bb.0:
4007
- ; AVX-NEXT: vbroadcastss (%rdi), %ymm0
4005
+ ; AVX-NEXT: vpshufd {{.*#+}} xmm0 = mem[0,0,0,0]
4008
4006
; AVX-NEXT: vpaddb 48(%rsi), %xmm0, %xmm1
4009
4007
; AVX-NEXT: vpaddb 32(%rsi), %xmm0, %xmm2
4010
4008
; AVX-NEXT: vpaddb 16(%rsi), %xmm0, %xmm3
@@ -4013,7 +4011,6 @@ define void @vec512_i8_widen_to_i32_factor4_broadcast_to_v16i32_factor16(ptr %in
4013
4011
; AVX-NEXT: vmovdqa %xmm3, 16(%rdx)
4014
4012
; AVX-NEXT: vmovdqa %xmm2, 32(%rdx)
4015
4013
; AVX-NEXT: vmovdqa %xmm1, 48(%rdx)
4016
- ; AVX-NEXT: vzeroupper
4017
4014
; AVX-NEXT: retq
4018
4015
;
4019
4016
; AVX2-LABEL: vec512_i8_widen_to_i32_factor4_broadcast_to_v16i32_factor16:
@@ -4029,7 +4026,6 @@ define void @vec512_i8_widen_to_i32_factor4_broadcast_to_v16i32_factor16(ptr %in
4029
4026
; AVX512F-LABEL: vec512_i8_widen_to_i32_factor4_broadcast_to_v16i32_factor16:
4030
4027
; AVX512F: # %bb.0:
4031
4028
; AVX512F-NEXT: vpbroadcastb (%rdi), %ymm0
4032
- ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm0
4033
4029
; AVX512F-NEXT: vpaddb 32(%rsi), %ymm0, %ymm1
4034
4030
; AVX512F-NEXT: vpaddb (%rsi), %ymm0, %ymm0
4035
4031
; AVX512F-NEXT: vmovdqa %ymm0, (%rdx)
@@ -4040,7 +4036,6 @@ define void @vec512_i8_widen_to_i32_factor4_broadcast_to_v16i32_factor16(ptr %in
4040
4036
; AVX512DQ-LABEL: vec512_i8_widen_to_i32_factor4_broadcast_to_v16i32_factor16:
4041
4037
; AVX512DQ: # %bb.0:
4042
4038
; AVX512DQ-NEXT: vpbroadcastb (%rdi), %ymm0
4043
- ; AVX512DQ-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm0
4044
4039
; AVX512DQ-NEXT: vpaddb 32(%rsi), %ymm0, %ymm1
4045
4040
; AVX512DQ-NEXT: vpaddb (%rsi), %ymm0, %ymm0
4046
4041
; AVX512DQ-NEXT: vmovdqa %ymm0, (%rdx)
@@ -4082,7 +4077,7 @@ define void @vec512_i8_widen_to_i64_factor8_broadcast_to_v8i64_factor8(ptr %in.e
4082
4077
;
4083
4078
; AVX-LABEL: vec512_i8_widen_to_i64_factor8_broadcast_to_v8i64_factor8:
4084
4079
; AVX: # %bb.0:
4085
- ; AVX-NEXT: vbroadcastsd (%rdi), %ymm0
4080
+ ; AVX-NEXT: vpshufd {{.*#+}} xmm0 = mem[0,1,0,1]
4086
4081
; AVX-NEXT: vpaddb 48(%rsi), %xmm0, %xmm1
4087
4082
; AVX-NEXT: vpaddb 32(%rsi), %xmm0, %xmm2
4088
4083
; AVX-NEXT: vpaddb 16(%rsi), %xmm0, %xmm3
@@ -4091,7 +4086,6 @@ define void @vec512_i8_widen_to_i64_factor8_broadcast_to_v8i64_factor8(ptr %in.e
4091
4086
; AVX-NEXT: vmovdqa %xmm3, 16(%rdx)
4092
4087
; AVX-NEXT: vmovdqa %xmm2, 32(%rdx)
4093
4088
; AVX-NEXT: vmovdqa %xmm1, 48(%rdx)
4094
- ; AVX-NEXT: vzeroupper
4095
4089
; AVX-NEXT: retq
4096
4090
;
4097
4091
; AVX2-LABEL: vec512_i8_widen_to_i64_factor8_broadcast_to_v8i64_factor8:
@@ -4107,7 +4101,6 @@ define void @vec512_i8_widen_to_i64_factor8_broadcast_to_v8i64_factor8(ptr %in.e
4107
4101
; AVX512F-LABEL: vec512_i8_widen_to_i64_factor8_broadcast_to_v8i64_factor8:
4108
4102
; AVX512F: # %bb.0:
4109
4103
; AVX512F-NEXT: vpbroadcastb (%rdi), %ymm0
4110
- ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm0
4111
4104
; AVX512F-NEXT: vpaddb 32(%rsi), %ymm0, %ymm1
4112
4105
; AVX512F-NEXT: vpaddb (%rsi), %ymm0, %ymm0
4113
4106
; AVX512F-NEXT: vmovdqa %ymm0, (%rdx)
@@ -4118,7 +4111,6 @@ define void @vec512_i8_widen_to_i64_factor8_broadcast_to_v8i64_factor8(ptr %in.e
4118
4111
; AVX512DQ-LABEL: vec512_i8_widen_to_i64_factor8_broadcast_to_v8i64_factor8:
4119
4112
; AVX512DQ: # %bb.0:
4120
4113
; AVX512DQ-NEXT: vpbroadcastb (%rdi), %ymm0
4121
- ; AVX512DQ-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm0
4122
4114
; AVX512DQ-NEXT: vpaddb 32(%rsi), %ymm0, %ymm1
4123
4115
; AVX512DQ-NEXT: vpaddb (%rsi), %ymm0, %ymm0
4124
4116
; AVX512DQ-NEXT: vmovdqa %ymm0, (%rdx)
@@ -4184,7 +4176,6 @@ define void @vec512_i8_widen_to_i128_factor16_broadcast_to_v4i128_factor4(ptr %i
4184
4176
; AVX512F-LABEL: vec512_i8_widen_to_i128_factor16_broadcast_to_v4i128_factor4:
4185
4177
; AVX512F: # %bb.0:
4186
4178
; AVX512F-NEXT: vpbroadcastb (%rdi), %ymm0
4187
- ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm0
4188
4179
; AVX512F-NEXT: vpaddb 32(%rsi), %ymm0, %ymm1
4189
4180
; AVX512F-NEXT: vpaddb (%rsi), %ymm0, %ymm0
4190
4181
; AVX512F-NEXT: vmovdqa %ymm0, (%rdx)
@@ -4195,7 +4186,6 @@ define void @vec512_i8_widen_to_i128_factor16_broadcast_to_v4i128_factor4(ptr %i
4195
4186
; AVX512DQ-LABEL: vec512_i8_widen_to_i128_factor16_broadcast_to_v4i128_factor4:
4196
4187
; AVX512DQ: # %bb.0:
4197
4188
; AVX512DQ-NEXT: vpbroadcastb (%rdi), %ymm0
4198
- ; AVX512DQ-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm0
4199
4189
; AVX512DQ-NEXT: vpaddb 32(%rsi), %ymm0, %ymm1
4200
4190
; AVX512DQ-NEXT: vpaddb (%rsi), %ymm0, %ymm0
4201
4191
; AVX512DQ-NEXT: vmovdqa %ymm0, (%rdx)
@@ -4338,7 +4328,6 @@ define void @vec512_i16_widen_to_i32_factor2_broadcast_to_v16i32_factor16(ptr %i
4338
4328
; AVX512F-LABEL: vec512_i16_widen_to_i32_factor2_broadcast_to_v16i32_factor16:
4339
4329
; AVX512F: # %bb.0:
4340
4330
; AVX512F-NEXT: vpbroadcastw (%rdi), %ymm0
4341
- ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm0
4342
4331
; AVX512F-NEXT: vpaddb 32(%rsi), %ymm0, %ymm1
4343
4332
; AVX512F-NEXT: vpaddb (%rsi), %ymm0, %ymm0
4344
4333
; AVX512F-NEXT: vmovdqa %ymm0, (%rdx)
@@ -4349,7 +4338,6 @@ define void @vec512_i16_widen_to_i32_factor2_broadcast_to_v16i32_factor16(ptr %i
4349
4338
; AVX512DQ-LABEL: vec512_i16_widen_to_i32_factor2_broadcast_to_v16i32_factor16:
4350
4339
; AVX512DQ: # %bb.0:
4351
4340
; AVX512DQ-NEXT: vpbroadcastw (%rdi), %ymm0
4352
- ; AVX512DQ-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm0
4353
4341
; AVX512DQ-NEXT: vpaddb 32(%rsi), %ymm0, %ymm1
4354
4342
; AVX512DQ-NEXT: vpaddb (%rsi), %ymm0, %ymm0
4355
4343
; AVX512DQ-NEXT: vmovdqa %ymm0, (%rdx)
@@ -4418,7 +4406,6 @@ define void @vec512_i16_widen_to_i64_factor4_broadcast_to_v8i64_factor8(ptr %in.
4418
4406
; AVX512F-LABEL: vec512_i16_widen_to_i64_factor4_broadcast_to_v8i64_factor8:
4419
4407
; AVX512F: # %bb.0:
4420
4408
; AVX512F-NEXT: vpbroadcastw (%rdi), %ymm0
4421
- ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm0
4422
4409
; AVX512F-NEXT: vpaddb 32(%rsi), %ymm0, %ymm1
4423
4410
; AVX512F-NEXT: vpaddb (%rsi), %ymm0, %ymm0
4424
4411
; AVX512F-NEXT: vmovdqa %ymm0, (%rdx)
@@ -4429,7 +4416,6 @@ define void @vec512_i16_widen_to_i64_factor4_broadcast_to_v8i64_factor8(ptr %in.
4429
4416
; AVX512DQ-LABEL: vec512_i16_widen_to_i64_factor4_broadcast_to_v8i64_factor8:
4430
4417
; AVX512DQ: # %bb.0:
4431
4418
; AVX512DQ-NEXT: vpbroadcastw (%rdi), %ymm0
4432
- ; AVX512DQ-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm0
4433
4419
; AVX512DQ-NEXT: vpaddb 32(%rsi), %ymm0, %ymm1
4434
4420
; AVX512DQ-NEXT: vpaddb (%rsi), %ymm0, %ymm0
4435
4421
; AVX512DQ-NEXT: vmovdqa %ymm0, (%rdx)
@@ -4497,7 +4483,6 @@ define void @vec512_i16_widen_to_i128_factor8_broadcast_to_v4i128_factor4(ptr %i
4497
4483
; AVX512F-LABEL: vec512_i16_widen_to_i128_factor8_broadcast_to_v4i128_factor4:
4498
4484
; AVX512F: # %bb.0:
4499
4485
; AVX512F-NEXT: vpbroadcastw (%rdi), %ymm0
4500
- ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm0
4501
4486
; AVX512F-NEXT: vpaddb 32(%rsi), %ymm0, %ymm1
4502
4487
; AVX512F-NEXT: vpaddb (%rsi), %ymm0, %ymm0
4503
4488
; AVX512F-NEXT: vmovdqa %ymm0, (%rdx)
@@ -4508,7 +4493,6 @@ define void @vec512_i16_widen_to_i128_factor8_broadcast_to_v4i128_factor4(ptr %i
4508
4493
; AVX512DQ-LABEL: vec512_i16_widen_to_i128_factor8_broadcast_to_v4i128_factor4:
4509
4494
; AVX512DQ: # %bb.0:
4510
4495
; AVX512DQ-NEXT: vpbroadcastw (%rdi), %ymm0
4511
- ; AVX512DQ-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm0
4512
4496
; AVX512DQ-NEXT: vpaddb 32(%rsi), %ymm0, %ymm1
4513
4497
; AVX512DQ-NEXT: vpaddb (%rsi), %ymm0, %ymm0
4514
4498
; AVX512DQ-NEXT: vmovdqa %ymm0, (%rdx)
@@ -4654,7 +4638,7 @@ define void @vec512_i32_widen_to_i64_factor2_broadcast_to_v8i64_factor8(ptr %in.
4654
4638
;
4655
4639
; AVX512F-LABEL: vec512_i32_widen_to_i64_factor2_broadcast_to_v8i64_factor8:
4656
4640
; AVX512F: # %bb.0:
4657
- ; AVX512F-NEXT: vpbroadcastd (%rdi), %zmm0
4641
+ ; AVX512F-NEXT: vpbroadcastd (%rdi), %ymm0
4658
4642
; AVX512F-NEXT: vpaddb 32(%rsi), %ymm0, %ymm1
4659
4643
; AVX512F-NEXT: vpaddb (%rsi), %ymm0, %ymm0
4660
4644
; AVX512F-NEXT: vmovdqa %ymm0, (%rdx)
@@ -4664,7 +4648,7 @@ define void @vec512_i32_widen_to_i64_factor2_broadcast_to_v8i64_factor8(ptr %in.
4664
4648
;
4665
4649
; AVX512DQ-LABEL: vec512_i32_widen_to_i64_factor2_broadcast_to_v8i64_factor8:
4666
4650
; AVX512DQ: # %bb.0:
4667
- ; AVX512DQ-NEXT: vpbroadcastd (%rdi), %zmm0
4651
+ ; AVX512DQ-NEXT: vpbroadcastd (%rdi), %ymm0
4668
4652
; AVX512DQ-NEXT: vpaddb 32(%rsi), %ymm0, %ymm1
4669
4653
; AVX512DQ-NEXT: vpaddb (%rsi), %ymm0, %ymm0
4670
4654
; AVX512DQ-NEXT: vmovdqa %ymm0, (%rdx)
@@ -4731,7 +4715,7 @@ define void @vec512_i32_widen_to_i128_factor4_broadcast_to_v4i128_factor4(ptr %i
4731
4715
;
4732
4716
; AVX512F-LABEL: vec512_i32_widen_to_i128_factor4_broadcast_to_v4i128_factor4:
4733
4717
; AVX512F: # %bb.0:
4734
- ; AVX512F-NEXT: vpbroadcastd (%rdi), %zmm0
4718
+ ; AVX512F-NEXT: vpbroadcastd (%rdi), %ymm0
4735
4719
; AVX512F-NEXT: vpaddb 32(%rsi), %ymm0, %ymm1
4736
4720
; AVX512F-NEXT: vpaddb (%rsi), %ymm0, %ymm0
4737
4721
; AVX512F-NEXT: vmovdqa %ymm0, (%rdx)
@@ -4741,7 +4725,7 @@ define void @vec512_i32_widen_to_i128_factor4_broadcast_to_v4i128_factor4(ptr %i
4741
4725
;
4742
4726
; AVX512DQ-LABEL: vec512_i32_widen_to_i128_factor4_broadcast_to_v4i128_factor4:
4743
4727
; AVX512DQ: # %bb.0:
4744
- ; AVX512DQ-NEXT: vpbroadcastd (%rdi), %zmm0
4728
+ ; AVX512DQ-NEXT: vpbroadcastd (%rdi), %ymm0
4745
4729
; AVX512DQ-NEXT: vpaddb 32(%rsi), %ymm0, %ymm1
4746
4730
; AVX512DQ-NEXT: vpaddb (%rsi), %ymm0, %ymm0
4747
4731
; AVX512DQ-NEXT: vmovdqa %ymm0, (%rdx)
@@ -4886,7 +4870,7 @@ define void @vec512_i64_widen_to_i128_factor2_broadcast_to_v4i128_factor4(ptr %i
4886
4870
;
4887
4871
; AVX512F-LABEL: vec512_i64_widen_to_i128_factor2_broadcast_to_v4i128_factor4:
4888
4872
; AVX512F: # %bb.0:
4889
- ; AVX512F-NEXT: vpbroadcastq (%rdi), %zmm0
4873
+ ; AVX512F-NEXT: vpbroadcastq (%rdi), %ymm0
4890
4874
; AVX512F-NEXT: vpaddb 32(%rsi), %ymm0, %ymm1
4891
4875
; AVX512F-NEXT: vpaddb (%rsi), %ymm0, %ymm0
4892
4876
; AVX512F-NEXT: vmovdqa %ymm0, (%rdx)
@@ -4896,7 +4880,7 @@ define void @vec512_i64_widen_to_i128_factor2_broadcast_to_v4i128_factor4(ptr %i
4896
4880
;
4897
4881
; AVX512DQ-LABEL: vec512_i64_widen_to_i128_factor2_broadcast_to_v4i128_factor4:
4898
4882
; AVX512DQ: # %bb.0:
4899
- ; AVX512DQ-NEXT: vpbroadcastq (%rdi), %zmm0
4883
+ ; AVX512DQ-NEXT: vpbroadcastq (%rdi), %ymm0
4900
4884
; AVX512DQ-NEXT: vpaddb 32(%rsi), %ymm0, %ymm1
4901
4885
; AVX512DQ-NEXT: vpaddb (%rsi), %ymm0, %ymm0
4902
4886
; AVX512DQ-NEXT: vmovdqa %ymm0, (%rdx)
0 commit comments