@@ -138,22 +138,21 @@ define <2 x i64> @test_compress_v2i64(<2 x i64> %vec, <2 x i1> %mask, <2 x i64>
138
138
; AVX2-NEXT: vmovaps %xmm2, -{{[0-9]+}}(%rsp)
139
139
; AVX2-NEXT: vpextrq $1, %xmm1, %rax
140
140
; AVX2-NEXT: vmovq %xmm1, %rcx
141
+ ; AVX2-NEXT: andl $1, %ecx
141
142
; AVX2-NEXT: movl %ecx, %edx
142
- ; AVX2-NEXT: subl %eax , %edx
143
- ; AVX2-NEXT: andl $1 , %edx
143
+ ; AVX2-NEXT: subq %rax , %rcx
144
+ ; AVX2-NEXT: movl %ecx , %eax
144
145
; AVX2-NEXT: andl $1, %eax
145
- ; AVX2-NEXT: andl $1, %ecx
146
- ; AVX2-NEXT: addq %rcx, %rax
147
146
; AVX2-NEXT: vpextrq $1, %xmm0, %rsi
148
- ; AVX2-NEXT: cmpq $2, %rax
149
- ; AVX2-NEXT: cmovbq -24(%rsp,%rdx ,8), %rsi
147
+ ; AVX2-NEXT: cmpq $2, %rcx
148
+ ; AVX2-NEXT: cmovbq -24(%rsp,%rax ,8), %rsi
150
149
; AVX2-NEXT: vmovq %xmm0, -{{[0-9]+}}(%rsp)
151
- ; AVX2-NEXT: movl %ecx, %ecx
152
- ; AVX2-NEXT: vpextrq $1, %xmm0, -24(%rsp,% rcx,8)
153
- ; AVX2-NEXT: cmpq $1, %rax
154
- ; AVX2-NEXT: movl $1 , %ecx
155
- ; AVX2-NEXT: cmovbq %rax , %rcx
156
- ; AVX2-NEXT: movq %rsi, -24(%rsp,%rcx ,8)
150
+ ; AVX2-NEXT: vpextrq $1, %xmm0, -24(%rsp,%rdx,8)
151
+ ; AVX2-NEXT: cmpq $1, %rcx
152
+ ; AVX2-NEXT: movl $1, %eax
153
+ ; AVX2-NEXT: cmovbq %rcx , %rax
154
+ ; AVX2-NEXT: movl %eax , %eax
155
+ ; AVX2-NEXT: movq %rsi, -24(%rsp,%rax ,8)
157
156
; AVX2-NEXT: vmovaps -{{[0-9]+}}(%rsp), %xmm0
158
157
; AVX2-NEXT: retq
159
158
;
@@ -188,18 +187,16 @@ define <2 x double> @test_compress_v2f64(<2 x double> %vec, <2 x i1> %mask, <2 x
188
187
; AVX2-NEXT: vpxor %xmm3, %xmm3, %xmm3
189
188
; AVX2-NEXT: vpcmpgtq %xmm1, %xmm3, %xmm1
190
189
; AVX2-NEXT: vmovaps %xmm2, -{{[0-9]+}}(%rsp)
191
- ; AVX2-NEXT: vpextrq $1, %xmm1, %rax
192
- ; AVX2-NEXT: vmovq %xmm1, %rcx
193
- ; AVX2-NEXT: movl %ecx, %edx
194
- ; AVX2-NEXT: subl %eax, %edx
195
- ; AVX2-NEXT: andl $1, %edx
190
+ ; AVX2-NEXT: vpextrq $1, %xmm1, %rcx
191
+ ; AVX2-NEXT: vmovq %xmm1, %rax
192
+ ; AVX2-NEXT: andl $1, %eax
193
+ ; AVX2-NEXT: movl %eax, %edx
194
+ ; AVX2-NEXT: subq %rcx, %rax
195
+ ; AVX2-NEXT: movl %eax, %ecx
196
+ ; AVX2-NEXT: andl $1, %ecx
196
197
; AVX2-NEXT: vmovsd {{.*#+}} xmm1 = mem[0],zero
197
198
; AVX2-NEXT: vmovlpd %xmm0, -{{[0-9]+}}(%rsp)
198
- ; AVX2-NEXT: andl $1, %ecx
199
- ; AVX2-NEXT: movl %ecx, %edx
200
199
; AVX2-NEXT: vmovhpd %xmm0, -24(%rsp,%rdx,8)
201
- ; AVX2-NEXT: andl $1, %eax
202
- ; AVX2-NEXT: addq %rcx, %rax
203
200
; AVX2-NEXT: cmpq $2, %rax
204
201
; AVX2-NEXT: jb .LBB3_2
205
202
; AVX2-NEXT: # %bb.1:
@@ -208,7 +205,8 @@ define <2 x double> @test_compress_v2f64(<2 x double> %vec, <2 x i1> %mask, <2 x
208
205
; AVX2-NEXT: cmpq $1, %rax
209
206
; AVX2-NEXT: movl $1, %ecx
210
207
; AVX2-NEXT: cmovbq %rax, %rcx
211
- ; AVX2-NEXT: vmovsd %xmm1, -24(%rsp,%rcx,8)
208
+ ; AVX2-NEXT: movl %ecx, %eax
209
+ ; AVX2-NEXT: vmovsd %xmm1, -24(%rsp,%rax,8)
212
210
; AVX2-NEXT: vmovaps -{{[0-9]+}}(%rsp), %xmm0
213
211
; AVX2-NEXT: retq
214
212
;
0 commit comments