77define i32 @dot_ext_v8i8_v8i32 (ptr %a , i64 %a_stride , ptr %b ) nounwind {
88; SSE2-LABEL: dot_ext_v8i8_v8i32:
99; SSE2: # %bb.0: # %entry
10- ; SSE2-NEXT: pushq %r14
1110; SSE2-NEXT: pushq %rbx
1211; SSE2-NEXT: movzbl (%rdi), %eax
1312; SSE2-NEXT: movzbl (%rdi,%rsi), %ecx
@@ -18,9 +17,9 @@ define i32 @dot_ext_v8i8_v8i32(ptr %a, i64 %a_stride, ptr %b) nounwind {
1817; SSE2-NEXT: leaq (%rsi,%rsi,4), %rbx
1918; SSE2-NEXT: movzbl (%rdi,%rbx), %ebx
2019; SSE2-NEXT: movzbl (%rdi,%r9,2), %r9d
21- ; SSE2-NEXT: leaq (,%rsi,8), %r14
22- ; SSE2-NEXT: subq %rsi, %r14
23- ; SSE2-NEXT: movzbl (%rdi,%r14 ), %esi
20+ ; SSE2-NEXT: leaq (%rdi ,%rsi,8), %rdi
21+ ; SSE2-NEXT: subq %rsi, %rdi
22+ ; SSE2-NEXT: movzbl (%rdi), %esi
2423; SSE2-NEXT: shll $16, %ecx
2524; SSE2-NEXT: orl %eax, %ecx
2625; SSE2-NEXT: movd %ecx, %xmm0
@@ -38,15 +37,14 @@ define i32 @dot_ext_v8i8_v8i32(ptr %a, i64 %a_stride, ptr %b) nounwind {
3837; SSE2-NEXT: paddd %xmm0, %xmm1
3938; SSE2-NEXT: movd %xmm1, %eax
4039; SSE2-NEXT: popq %rbx
41- ; SSE2-NEXT: popq %r14
4240; SSE2-NEXT: retq
4341;
4442; SSE4-LABEL: dot_ext_v8i8_v8i32:
4543; SSE4: # %bb.0: # %entry
4644; SSE4-NEXT: movzbl (%rdi), %eax
4745; SSE4-NEXT: leaq (%rsi,%rsi,4), %rcx
4846; SSE4-NEXT: leaq (%rsi,%rsi,2), %r8
49- ; SSE4-NEXT: leaq (,%rsi,8), %r9
47+ ; SSE4-NEXT: leaq (%rdi ,%rsi,8), %r9
5048; SSE4-NEXT: subq %rsi, %r9
5149; SSE4-NEXT: movd %eax, %xmm0
5250; SSE4-NEXT: pinsrb $2, (%rdi,%rsi), %xmm0
@@ -55,7 +53,7 @@ define i32 @dot_ext_v8i8_v8i32(ptr %a, i64 %a_stride, ptr %b) nounwind {
5553; SSE4-NEXT: pinsrb $8, (%rdi,%rsi,4), %xmm0
5654; SSE4-NEXT: pinsrb $10, (%rdi,%rcx), %xmm0
5755; SSE4-NEXT: pinsrb $12, (%rdi,%r8,2), %xmm0
58- ; SSE4-NEXT: pinsrb $14, (%rdi,% r9), %xmm0
56+ ; SSE4-NEXT: pinsrb $14, (%r9), %xmm0
5957; SSE4-NEXT: movdqu (%rdx), %xmm1
6058; SSE4-NEXT: pmaddwd %xmm0, %xmm1
6159; SSE4-NEXT: pshufd {{.*#+}} xmm0 = xmm1[2,3,2,3]
@@ -70,7 +68,7 @@ define i32 @dot_ext_v8i8_v8i32(ptr %a, i64 %a_stride, ptr %b) nounwind {
7068; AVX-NEXT: movzbl (%rdi), %eax
7169; AVX-NEXT: leaq (%rsi,%rsi,2), %rcx
7270; AVX-NEXT: leaq (%rsi,%rsi,4), %r8
73- ; AVX-NEXT: leaq (,%rsi,8), %r9
71+ ; AVX-NEXT: leaq (%rdi ,%rsi,8), %r9
7472; AVX-NEXT: subq %rsi, %r9
7573; AVX-NEXT: vmovd %eax, %xmm0
7674; AVX-NEXT: vpinsrb $2, (%rdi,%rsi), %xmm0, %xmm0
@@ -79,7 +77,7 @@ define i32 @dot_ext_v8i8_v8i32(ptr %a, i64 %a_stride, ptr %b) nounwind {
7977; AVX-NEXT: vpinsrb $8, (%rdi,%rsi,4), %xmm0, %xmm0
8078; AVX-NEXT: vpinsrb $10, (%rdi,%r8), %xmm0, %xmm0
8179; AVX-NEXT: vpinsrb $12, (%rdi,%rcx,2), %xmm0, %xmm0
82- ; AVX-NEXT: vpinsrb $14, (%rdi,% r9), %xmm0, %xmm0
80+ ; AVX-NEXT: vpinsrb $14, (%r9), %xmm0, %xmm0
8381; AVX-NEXT: vpmaddwd (%rdx), %xmm0, %xmm0
8482; AVX-NEXT: vpshufd {{.*#+}} xmm1 = xmm0[2,3,2,3]
8583; AVX-NEXT: vpaddd %xmm1, %xmm0, %xmm0
0 commit comments