@@ -210,9 +210,8 @@ define i32 @bextr32_a1_indexzext(i32 %val, i8 zeroext %numskipbits, i8 zeroext %
210
210
; X64-BMI1-LABEL: bextr32_a1_indexzext:
211
211
; X64-BMI1: # %bb.0:
212
212
; X64-BMI1-NEXT: shll $8, %edx
213
- ; X64-BMI1-NEXT: movzbl %sil, %eax
214
- ; X64-BMI1-NEXT: orl %edx, %eax
215
- ; X64-BMI1-NEXT: bextrl %eax, %edi, %eax
213
+ ; X64-BMI1-NEXT: orl %esi, %edx
214
+ ; X64-BMI1-NEXT: bextrl %edx, %edi, %eax
216
215
; X64-BMI1-NEXT: retq
217
216
;
218
217
; X64-BMI2-LABEL: bextr32_a1_indexzext:
@@ -351,9 +350,8 @@ define i32 @bextr32_a3_load_indexzext(ptr %w, i8 zeroext %numskipbits, i8 zeroex
351
350
; X64-BMI1-LABEL: bextr32_a3_load_indexzext:
352
351
; X64-BMI1: # %bb.0:
353
352
; X64-BMI1-NEXT: shll $8, %edx
354
- ; X64-BMI1-NEXT: movzbl %sil, %eax
355
- ; X64-BMI1-NEXT: orl %edx, %eax
356
- ; X64-BMI1-NEXT: bextrl %eax, (%rdi), %eax
353
+ ; X64-BMI1-NEXT: orl %esi, %edx
354
+ ; X64-BMI1-NEXT: bextrl %edx, (%rdi), %eax
357
355
; X64-BMI1-NEXT: retq
358
356
;
359
357
; X64-BMI2-LABEL: bextr32_a3_load_indexzext:
@@ -953,10 +951,10 @@ define i64 @bextr64_a1_indexzext(i64 %val, i8 zeroext %numskipbits, i8 zeroext %
953
951
;
954
952
; X64-BMI1-LABEL: bextr64_a1_indexzext:
955
953
; X64-BMI1: # %bb.0:
954
+ ; X64-BMI1-NEXT: # kill: def $edx killed $edx def $rdx
956
955
; X64-BMI1-NEXT: shll $8, %edx
957
- ; X64-BMI1-NEXT: movzbl %sil, %eax
958
- ; X64-BMI1-NEXT: orl %edx, %eax
959
- ; X64-BMI1-NEXT: bextrq %rax, %rdi, %rax
956
+ ; X64-BMI1-NEXT: orl %esi, %edx
957
+ ; X64-BMI1-NEXT: bextrq %rdx, %rdi, %rax
960
958
; X64-BMI1-NEXT: retq
961
959
;
962
960
; X64-BMI2-LABEL: bextr64_a1_indexzext:
@@ -1250,10 +1248,10 @@ define i64 @bextr64_a3_load_indexzext(ptr %w, i8 zeroext %numskipbits, i8 zeroex
1250
1248
;
1251
1249
; X64-BMI1-LABEL: bextr64_a3_load_indexzext:
1252
1250
; X64-BMI1: # %bb.0:
1251
+ ; X64-BMI1-NEXT: # kill: def $edx killed $edx def $rdx
1253
1252
; X64-BMI1-NEXT: shll $8, %edx
1254
- ; X64-BMI1-NEXT: movzbl %sil, %eax
1255
- ; X64-BMI1-NEXT: orl %edx, %eax
1256
- ; X64-BMI1-NEXT: bextrq %rax, (%rdi), %rax
1253
+ ; X64-BMI1-NEXT: orl %esi, %edx
1254
+ ; X64-BMI1-NEXT: bextrq %rdx, (%rdi), %rax
1257
1255
; X64-BMI1-NEXT: retq
1258
1256
;
1259
1257
; X64-BMI2-LABEL: bextr64_a3_load_indexzext:
@@ -2327,9 +2325,8 @@ define i32 @bextr32_b1_indexzext(i32 %val, i8 zeroext %numskipbits, i8 zeroext %
2327
2325
; X64-BMI1-LABEL: bextr32_b1_indexzext:
2328
2326
; X64-BMI1: # %bb.0:
2329
2327
; X64-BMI1-NEXT: shll $8, %edx
2330
- ; X64-BMI1-NEXT: movzbl %sil, %eax
2331
- ; X64-BMI1-NEXT: orl %edx, %eax
2332
- ; X64-BMI1-NEXT: bextrl %eax, %edi, %eax
2328
+ ; X64-BMI1-NEXT: orl %esi, %edx
2329
+ ; X64-BMI1-NEXT: bextrl %edx, %edi, %eax
2333
2330
; X64-BMI1-NEXT: retq
2334
2331
;
2335
2332
; X64-BMI2-LABEL: bextr32_b1_indexzext:
@@ -2468,9 +2465,8 @@ define i32 @bextr32_b3_load_indexzext(ptr %w, i8 zeroext %numskipbits, i8 zeroex
2468
2465
; X64-BMI1-LABEL: bextr32_b3_load_indexzext:
2469
2466
; X64-BMI1: # %bb.0:
2470
2467
; X64-BMI1-NEXT: shll $8, %edx
2471
- ; X64-BMI1-NEXT: movzbl %sil, %eax
2472
- ; X64-BMI1-NEXT: orl %edx, %eax
2473
- ; X64-BMI1-NEXT: bextrl %eax, (%rdi), %eax
2468
+ ; X64-BMI1-NEXT: orl %esi, %edx
2469
+ ; X64-BMI1-NEXT: bextrl %edx, (%rdi), %eax
2474
2470
; X64-BMI1-NEXT: retq
2475
2471
;
2476
2472
; X64-BMI2-LABEL: bextr32_b3_load_indexzext:
@@ -2916,10 +2912,10 @@ define i64 @bextr64_b1_indexzext(i64 %val, i8 zeroext %numskipbits, i8 zeroext %
2916
2912
;
2917
2913
; X64-BMI1-LABEL: bextr64_b1_indexzext:
2918
2914
; X64-BMI1: # %bb.0:
2915
+ ; X64-BMI1-NEXT: # kill: def $edx killed $edx def $rdx
2919
2916
; X64-BMI1-NEXT: shll $8, %edx
2920
- ; X64-BMI1-NEXT: movzbl %sil, %eax
2921
- ; X64-BMI1-NEXT: orl %edx, %eax
2922
- ; X64-BMI1-NEXT: bextrq %rax, %rdi, %rax
2917
+ ; X64-BMI1-NEXT: orl %esi, %edx
2918
+ ; X64-BMI1-NEXT: bextrq %rdx, %rdi, %rax
2923
2919
; X64-BMI1-NEXT: retq
2924
2920
;
2925
2921
; X64-BMI2-LABEL: bextr64_b1_indexzext:
@@ -3205,10 +3201,10 @@ define i64 @bextr64_b3_load_indexzext(ptr %w, i8 zeroext %numskipbits, i8 zeroex
3205
3201
;
3206
3202
; X64-BMI1-LABEL: bextr64_b3_load_indexzext:
3207
3203
; X64-BMI1: # %bb.0:
3204
+ ; X64-BMI1-NEXT: # kill: def $edx killed $edx def $rdx
3208
3205
; X64-BMI1-NEXT: shll $8, %edx
3209
- ; X64-BMI1-NEXT: movzbl %sil, %eax
3210
- ; X64-BMI1-NEXT: orl %edx, %eax
3211
- ; X64-BMI1-NEXT: bextrq %rax, (%rdi), %rax
3206
+ ; X64-BMI1-NEXT: orl %esi, %edx
3207
+ ; X64-BMI1-NEXT: bextrq %rdx, (%rdi), %rax
3212
3208
; X64-BMI1-NEXT: retq
3213
3209
;
3214
3210
; X64-BMI2-LABEL: bextr64_b3_load_indexzext:
0 commit comments