@@ -4408,12 +4408,10 @@ define <16 x i8> @non_splat_minus_one_divisor_1(<16 x i8> %A) {
4408
4408
; SSE-NEXT: movzbl %cl, %eax
4409
4409
; SSE-NEXT: pinsrb $12, %eax, %xmm1
4410
4410
; SSE-NEXT: pextrb $13, %xmm0, %eax
4411
- ; SSE-NEXT: movl %eax, %ecx
4412
- ; SSE-NEXT: shrb $7, %cl
4413
- ; SSE-NEXT: addb %al, %cl
4414
- ; SSE-NEXT: sarb %cl
4415
- ; SSE-NEXT: movzbl %cl, %eax
4416
- ; SSE-NEXT: pinsrb $13, %eax, %xmm1
4411
+ ; SSE-NEXT: xorl %ecx, %ecx
4412
+ ; SSE-NEXT: cmpb $-128, %al
4413
+ ; SSE-NEXT: sete %cl
4414
+ ; SSE-NEXT: pinsrb $13, %ecx, %xmm1
4417
4415
; SSE-NEXT: pextrb $14, %xmm0, %eax
4418
4416
; SSE-NEXT: movl %eax, %ecx
4419
4417
; SSE-NEXT: shrb $7, %cl
@@ -4422,12 +4420,10 @@ define <16 x i8> @non_splat_minus_one_divisor_1(<16 x i8> %A) {
4422
4420
; SSE-NEXT: movzbl %cl, %eax
4423
4421
; SSE-NEXT: pinsrb $14, %eax, %xmm1
4424
4422
; SSE-NEXT: pextrb $15, %xmm0, %eax
4425
- ; SSE-NEXT: movl %eax, %ecx
4426
- ; SSE-NEXT: shrb $7, %cl
4427
- ; SSE-NEXT: addb %al, %cl
4428
- ; SSE-NEXT: sarb %cl
4429
- ; SSE-NEXT: movzbl %cl, %eax
4430
- ; SSE-NEXT: pinsrb $15, %eax, %xmm1
4423
+ ; SSE-NEXT: xorl %ecx, %ecx
4424
+ ; SSE-NEXT: cmpb $-128, %al
4425
+ ; SSE-NEXT: sete %cl
4426
+ ; SSE-NEXT: pinsrb $15, %ecx, %xmm1
4431
4427
; SSE-NEXT: movdqa %xmm1, %xmm0
4432
4428
; SSE-NEXT: retq
4433
4429
;
@@ -4504,12 +4500,10 @@ define <16 x i8> @non_splat_minus_one_divisor_1(<16 x i8> %A) {
4504
4500
; AVX-NEXT: movzbl %cl, %eax
4505
4501
; AVX-NEXT: vpinsrb $12, %eax, %xmm1, %xmm1
4506
4502
; AVX-NEXT: vpextrb $13, %xmm0, %eax
4507
- ; AVX-NEXT: movl %eax, %ecx
4508
- ; AVX-NEXT: shrb $7, %cl
4509
- ; AVX-NEXT: addb %al, %cl
4510
- ; AVX-NEXT: sarb %cl
4511
- ; AVX-NEXT: movzbl %cl, %eax
4512
- ; AVX-NEXT: vpinsrb $13, %eax, %xmm1, %xmm1
4503
+ ; AVX-NEXT: xorl %ecx, %ecx
4504
+ ; AVX-NEXT: cmpb $-128, %al
4505
+ ; AVX-NEXT: sete %cl
4506
+ ; AVX-NEXT: vpinsrb $13, %ecx, %xmm1, %xmm1
4513
4507
; AVX-NEXT: vpextrb $14, %xmm0, %eax
4514
4508
; AVX-NEXT: movl %eax, %ecx
4515
4509
; AVX-NEXT: shrb $7, %cl
@@ -4518,14 +4512,12 @@ define <16 x i8> @non_splat_minus_one_divisor_1(<16 x i8> %A) {
4518
4512
; AVX-NEXT: movzbl %cl, %eax
4519
4513
; AVX-NEXT: vpinsrb $14, %eax, %xmm1, %xmm1
4520
4514
; AVX-NEXT: vpextrb $15, %xmm0, %eax
4521
- ; AVX-NEXT: movl %eax, %ecx
4522
- ; AVX-NEXT: shrb $7, %cl
4523
- ; AVX-NEXT: addb %al, %cl
4524
- ; AVX-NEXT: sarb %cl
4525
- ; AVX-NEXT: movzbl %cl, %eax
4526
- ; AVX-NEXT: vpinsrb $15, %eax, %xmm1, %xmm0
4515
+ ; AVX-NEXT: xorl %ecx, %ecx
4516
+ ; AVX-NEXT: cmpb $-128, %al
4517
+ ; AVX-NEXT: sete %cl
4518
+ ; AVX-NEXT: vpinsrb $15, %ecx, %xmm1, %xmm0
4527
4519
; AVX-NEXT: retq
4528
- %div = sdiv <16 x i8 > %A , <i8 -1 , i8 -1 , i8 2 , i8 -1 , i8 -1 , i8 -1 , i8 2 , i8 -1 , i8 -1 , i8 2 , i8 2 , i8 2 , i8 2 , i8 2 , i8 2 , i8 2 >
4520
+ %div = sdiv <16 x i8 > %A , <i8 -1 , i8 -1 , i8 2 , i8 -1 , i8 -1 , i8 -1 , i8 2 , i8 -1 , i8 -1 , i8 2 , i8 2 , i8 2 , i8 2 , i8 - 128 , i8 2 , i8 - 128 >
4529
4521
ret <16 x i8 > %div
4530
4522
}
4531
4523
0 commit comments