@@ -3951,7 +3951,6 @@ define void @vec512_i8_widen_to_i16_factor2_broadcast_to_v32i16_factor32(ptr %in
39513951; AVX512F-LABEL: vec512_i8_widen_to_i16_factor2_broadcast_to_v32i16_factor32:
39523952; AVX512F: # %bb.0:
39533953; AVX512F-NEXT: vpbroadcastb (%rdi), %ymm0
3954- ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm0
39553954; AVX512F-NEXT: vpaddb 32(%rsi), %ymm0, %ymm1
39563955; AVX512F-NEXT: vpaddb (%rsi), %ymm0, %ymm0
39573956; AVX512F-NEXT: vmovdqa %ymm0, (%rdx)
@@ -3962,7 +3961,6 @@ define void @vec512_i8_widen_to_i16_factor2_broadcast_to_v32i16_factor32(ptr %in
39623961; AVX512DQ-LABEL: vec512_i8_widen_to_i16_factor2_broadcast_to_v32i16_factor32:
39633962; AVX512DQ: # %bb.0:
39643963; AVX512DQ-NEXT: vpbroadcastb (%rdi), %ymm0
3965- ; AVX512DQ-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm0
39663964; AVX512DQ-NEXT: vpaddb 32(%rsi), %ymm0, %ymm1
39673965; AVX512DQ-NEXT: vpaddb (%rsi), %ymm0, %ymm0
39683966; AVX512DQ-NEXT: vmovdqa %ymm0, (%rdx)
@@ -4004,7 +4002,7 @@ define void @vec512_i8_widen_to_i32_factor4_broadcast_to_v16i32_factor16(ptr %in
40044002;
40054003; AVX-LABEL: vec512_i8_widen_to_i32_factor4_broadcast_to_v16i32_factor16:
40064004; AVX: # %bb.0:
4007- ; AVX-NEXT: vbroadcastss (%rdi), %ymm0
4005+ ; AVX-NEXT: vpshufd {{.*#+}} xmm0 = mem[0,0,0,0]
40084006; AVX-NEXT: vpaddb 48(%rsi), %xmm0, %xmm1
40094007; AVX-NEXT: vpaddb 32(%rsi), %xmm0, %xmm2
40104008; 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
40134011; AVX-NEXT: vmovdqa %xmm3, 16(%rdx)
40144012; AVX-NEXT: vmovdqa %xmm2, 32(%rdx)
40154013; AVX-NEXT: vmovdqa %xmm1, 48(%rdx)
4016- ; AVX-NEXT: vzeroupper
40174014; AVX-NEXT: retq
40184015;
40194016; 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
40294026; AVX512F-LABEL: vec512_i8_widen_to_i32_factor4_broadcast_to_v16i32_factor16:
40304027; AVX512F: # %bb.0:
40314028; AVX512F-NEXT: vpbroadcastb (%rdi), %ymm0
4032- ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm0
40334029; AVX512F-NEXT: vpaddb 32(%rsi), %ymm0, %ymm1
40344030; AVX512F-NEXT: vpaddb (%rsi), %ymm0, %ymm0
40354031; AVX512F-NEXT: vmovdqa %ymm0, (%rdx)
@@ -4040,7 +4036,6 @@ define void @vec512_i8_widen_to_i32_factor4_broadcast_to_v16i32_factor16(ptr %in
40404036; AVX512DQ-LABEL: vec512_i8_widen_to_i32_factor4_broadcast_to_v16i32_factor16:
40414037; AVX512DQ: # %bb.0:
40424038; AVX512DQ-NEXT: vpbroadcastb (%rdi), %ymm0
4043- ; AVX512DQ-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm0
40444039; AVX512DQ-NEXT: vpaddb 32(%rsi), %ymm0, %ymm1
40454040; AVX512DQ-NEXT: vpaddb (%rsi), %ymm0, %ymm0
40464041; AVX512DQ-NEXT: vmovdqa %ymm0, (%rdx)
@@ -4082,7 +4077,7 @@ define void @vec512_i8_widen_to_i64_factor8_broadcast_to_v8i64_factor8(ptr %in.e
40824077;
40834078; AVX-LABEL: vec512_i8_widen_to_i64_factor8_broadcast_to_v8i64_factor8:
40844079; AVX: # %bb.0:
4085- ; AVX-NEXT: vbroadcastsd (%rdi), %ymm0
4080+ ; AVX-NEXT: vpshufd {{.*#+}} xmm0 = mem[0,1,0,1]
40864081; AVX-NEXT: vpaddb 48(%rsi), %xmm0, %xmm1
40874082; AVX-NEXT: vpaddb 32(%rsi), %xmm0, %xmm2
40884083; 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
40914086; AVX-NEXT: vmovdqa %xmm3, 16(%rdx)
40924087; AVX-NEXT: vmovdqa %xmm2, 32(%rdx)
40934088; AVX-NEXT: vmovdqa %xmm1, 48(%rdx)
4094- ; AVX-NEXT: vzeroupper
40954089; AVX-NEXT: retq
40964090;
40974091; 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
41074101; AVX512F-LABEL: vec512_i8_widen_to_i64_factor8_broadcast_to_v8i64_factor8:
41084102; AVX512F: # %bb.0:
41094103; AVX512F-NEXT: vpbroadcastb (%rdi), %ymm0
4110- ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm0
41114104; AVX512F-NEXT: vpaddb 32(%rsi), %ymm0, %ymm1
41124105; AVX512F-NEXT: vpaddb (%rsi), %ymm0, %ymm0
41134106; AVX512F-NEXT: vmovdqa %ymm0, (%rdx)
@@ -4118,7 +4111,6 @@ define void @vec512_i8_widen_to_i64_factor8_broadcast_to_v8i64_factor8(ptr %in.e
41184111; AVX512DQ-LABEL: vec512_i8_widen_to_i64_factor8_broadcast_to_v8i64_factor8:
41194112; AVX512DQ: # %bb.0:
41204113; AVX512DQ-NEXT: vpbroadcastb (%rdi), %ymm0
4121- ; AVX512DQ-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm0
41224114; AVX512DQ-NEXT: vpaddb 32(%rsi), %ymm0, %ymm1
41234115; AVX512DQ-NEXT: vpaddb (%rsi), %ymm0, %ymm0
41244116; AVX512DQ-NEXT: vmovdqa %ymm0, (%rdx)
@@ -4184,7 +4176,6 @@ define void @vec512_i8_widen_to_i128_factor16_broadcast_to_v4i128_factor4(ptr %i
41844176; AVX512F-LABEL: vec512_i8_widen_to_i128_factor16_broadcast_to_v4i128_factor4:
41854177; AVX512F: # %bb.0:
41864178; AVX512F-NEXT: vpbroadcastb (%rdi), %ymm0
4187- ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm0
41884179; AVX512F-NEXT: vpaddb 32(%rsi), %ymm0, %ymm1
41894180; AVX512F-NEXT: vpaddb (%rsi), %ymm0, %ymm0
41904181; AVX512F-NEXT: vmovdqa %ymm0, (%rdx)
@@ -4195,7 +4186,6 @@ define void @vec512_i8_widen_to_i128_factor16_broadcast_to_v4i128_factor4(ptr %i
41954186; AVX512DQ-LABEL: vec512_i8_widen_to_i128_factor16_broadcast_to_v4i128_factor4:
41964187; AVX512DQ: # %bb.0:
41974188; AVX512DQ-NEXT: vpbroadcastb (%rdi), %ymm0
4198- ; AVX512DQ-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm0
41994189; AVX512DQ-NEXT: vpaddb 32(%rsi), %ymm0, %ymm1
42004190; AVX512DQ-NEXT: vpaddb (%rsi), %ymm0, %ymm0
42014191; AVX512DQ-NEXT: vmovdqa %ymm0, (%rdx)
@@ -4338,7 +4328,6 @@ define void @vec512_i16_widen_to_i32_factor2_broadcast_to_v16i32_factor16(ptr %i
43384328; AVX512F-LABEL: vec512_i16_widen_to_i32_factor2_broadcast_to_v16i32_factor16:
43394329; AVX512F: # %bb.0:
43404330; AVX512F-NEXT: vpbroadcastw (%rdi), %ymm0
4341- ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm0
43424331; AVX512F-NEXT: vpaddb 32(%rsi), %ymm0, %ymm1
43434332; AVX512F-NEXT: vpaddb (%rsi), %ymm0, %ymm0
43444333; AVX512F-NEXT: vmovdqa %ymm0, (%rdx)
@@ -4349,7 +4338,6 @@ define void @vec512_i16_widen_to_i32_factor2_broadcast_to_v16i32_factor16(ptr %i
43494338; AVX512DQ-LABEL: vec512_i16_widen_to_i32_factor2_broadcast_to_v16i32_factor16:
43504339; AVX512DQ: # %bb.0:
43514340; AVX512DQ-NEXT: vpbroadcastw (%rdi), %ymm0
4352- ; AVX512DQ-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm0
43534341; AVX512DQ-NEXT: vpaddb 32(%rsi), %ymm0, %ymm1
43544342; AVX512DQ-NEXT: vpaddb (%rsi), %ymm0, %ymm0
43554343; AVX512DQ-NEXT: vmovdqa %ymm0, (%rdx)
@@ -4418,7 +4406,6 @@ define void @vec512_i16_widen_to_i64_factor4_broadcast_to_v8i64_factor8(ptr %in.
44184406; AVX512F-LABEL: vec512_i16_widen_to_i64_factor4_broadcast_to_v8i64_factor8:
44194407; AVX512F: # %bb.0:
44204408; AVX512F-NEXT: vpbroadcastw (%rdi), %ymm0
4421- ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm0
44224409; AVX512F-NEXT: vpaddb 32(%rsi), %ymm0, %ymm1
44234410; AVX512F-NEXT: vpaddb (%rsi), %ymm0, %ymm0
44244411; AVX512F-NEXT: vmovdqa %ymm0, (%rdx)
@@ -4429,7 +4416,6 @@ define void @vec512_i16_widen_to_i64_factor4_broadcast_to_v8i64_factor8(ptr %in.
44294416; AVX512DQ-LABEL: vec512_i16_widen_to_i64_factor4_broadcast_to_v8i64_factor8:
44304417; AVX512DQ: # %bb.0:
44314418; AVX512DQ-NEXT: vpbroadcastw (%rdi), %ymm0
4432- ; AVX512DQ-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm0
44334419; AVX512DQ-NEXT: vpaddb 32(%rsi), %ymm0, %ymm1
44344420; AVX512DQ-NEXT: vpaddb (%rsi), %ymm0, %ymm0
44354421; AVX512DQ-NEXT: vmovdqa %ymm0, (%rdx)
@@ -4497,7 +4483,6 @@ define void @vec512_i16_widen_to_i128_factor8_broadcast_to_v4i128_factor4(ptr %i
44974483; AVX512F-LABEL: vec512_i16_widen_to_i128_factor8_broadcast_to_v4i128_factor4:
44984484; AVX512F: # %bb.0:
44994485; AVX512F-NEXT: vpbroadcastw (%rdi), %ymm0
4500- ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm0
45014486; AVX512F-NEXT: vpaddb 32(%rsi), %ymm0, %ymm1
45024487; AVX512F-NEXT: vpaddb (%rsi), %ymm0, %ymm0
45034488; AVX512F-NEXT: vmovdqa %ymm0, (%rdx)
@@ -4508,7 +4493,6 @@ define void @vec512_i16_widen_to_i128_factor8_broadcast_to_v4i128_factor4(ptr %i
45084493; AVX512DQ-LABEL: vec512_i16_widen_to_i128_factor8_broadcast_to_v4i128_factor4:
45094494; AVX512DQ: # %bb.0:
45104495; AVX512DQ-NEXT: vpbroadcastw (%rdi), %ymm0
4511- ; AVX512DQ-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm0
45124496; AVX512DQ-NEXT: vpaddb 32(%rsi), %ymm0, %ymm1
45134497; AVX512DQ-NEXT: vpaddb (%rsi), %ymm0, %ymm0
45144498; AVX512DQ-NEXT: vmovdqa %ymm0, (%rdx)
@@ -4654,7 +4638,7 @@ define void @vec512_i32_widen_to_i64_factor2_broadcast_to_v8i64_factor8(ptr %in.
46544638;
46554639; AVX512F-LABEL: vec512_i32_widen_to_i64_factor2_broadcast_to_v8i64_factor8:
46564640; AVX512F: # %bb.0:
4657- ; AVX512F-NEXT: vpbroadcastd (%rdi), %zmm0
4641+ ; AVX512F-NEXT: vpbroadcastd (%rdi), %ymm0
46584642; AVX512F-NEXT: vpaddb 32(%rsi), %ymm0, %ymm1
46594643; AVX512F-NEXT: vpaddb (%rsi), %ymm0, %ymm0
46604644; AVX512F-NEXT: vmovdqa %ymm0, (%rdx)
@@ -4664,7 +4648,7 @@ define void @vec512_i32_widen_to_i64_factor2_broadcast_to_v8i64_factor8(ptr %in.
46644648;
46654649; AVX512DQ-LABEL: vec512_i32_widen_to_i64_factor2_broadcast_to_v8i64_factor8:
46664650; AVX512DQ: # %bb.0:
4667- ; AVX512DQ-NEXT: vpbroadcastd (%rdi), %zmm0
4651+ ; AVX512DQ-NEXT: vpbroadcastd (%rdi), %ymm0
46684652; AVX512DQ-NEXT: vpaddb 32(%rsi), %ymm0, %ymm1
46694653; AVX512DQ-NEXT: vpaddb (%rsi), %ymm0, %ymm0
46704654; AVX512DQ-NEXT: vmovdqa %ymm0, (%rdx)
@@ -4731,7 +4715,7 @@ define void @vec512_i32_widen_to_i128_factor4_broadcast_to_v4i128_factor4(ptr %i
47314715;
47324716; AVX512F-LABEL: vec512_i32_widen_to_i128_factor4_broadcast_to_v4i128_factor4:
47334717; AVX512F: # %bb.0:
4734- ; AVX512F-NEXT: vpbroadcastd (%rdi), %zmm0
4718+ ; AVX512F-NEXT: vpbroadcastd (%rdi), %ymm0
47354719; AVX512F-NEXT: vpaddb 32(%rsi), %ymm0, %ymm1
47364720; AVX512F-NEXT: vpaddb (%rsi), %ymm0, %ymm0
47374721; AVX512F-NEXT: vmovdqa %ymm0, (%rdx)
@@ -4741,7 +4725,7 @@ define void @vec512_i32_widen_to_i128_factor4_broadcast_to_v4i128_factor4(ptr %i
47414725;
47424726; AVX512DQ-LABEL: vec512_i32_widen_to_i128_factor4_broadcast_to_v4i128_factor4:
47434727; AVX512DQ: # %bb.0:
4744- ; AVX512DQ-NEXT: vpbroadcastd (%rdi), %zmm0
4728+ ; AVX512DQ-NEXT: vpbroadcastd (%rdi), %ymm0
47454729; AVX512DQ-NEXT: vpaddb 32(%rsi), %ymm0, %ymm1
47464730; AVX512DQ-NEXT: vpaddb (%rsi), %ymm0, %ymm0
47474731; AVX512DQ-NEXT: vmovdqa %ymm0, (%rdx)
@@ -4886,7 +4870,7 @@ define void @vec512_i64_widen_to_i128_factor2_broadcast_to_v4i128_factor4(ptr %i
48864870;
48874871; AVX512F-LABEL: vec512_i64_widen_to_i128_factor2_broadcast_to_v4i128_factor4:
48884872; AVX512F: # %bb.0:
4889- ; AVX512F-NEXT: vpbroadcastq (%rdi), %zmm0
4873+ ; AVX512F-NEXT: vpbroadcastq (%rdi), %ymm0
48904874; AVX512F-NEXT: vpaddb 32(%rsi), %ymm0, %ymm1
48914875; AVX512F-NEXT: vpaddb (%rsi), %ymm0, %ymm0
48924876; AVX512F-NEXT: vmovdqa %ymm0, (%rdx)
@@ -4896,7 +4880,7 @@ define void @vec512_i64_widen_to_i128_factor2_broadcast_to_v4i128_factor4(ptr %i
48964880;
48974881; AVX512DQ-LABEL: vec512_i64_widen_to_i128_factor2_broadcast_to_v4i128_factor4:
48984882; AVX512DQ: # %bb.0:
4899- ; AVX512DQ-NEXT: vpbroadcastq (%rdi), %zmm0
4883+ ; AVX512DQ-NEXT: vpbroadcastq (%rdi), %ymm0
49004884; AVX512DQ-NEXT: vpaddb 32(%rsi), %ymm0, %ymm1
49014885; AVX512DQ-NEXT: vpaddb (%rsi), %ymm0, %ymm0
49024886; AVX512DQ-NEXT: vmovdqa %ymm0, (%rdx)
0 commit comments