From 32714e87b5a2ae5d7e7fee65aaa9be089f55b677 Mon Sep 17 00:00:00 2001 From: Roman Lebedev Date: Sun, 2 Jun 2019 17:11:21 +0000 Subject: [PATCH] [NFC][X86] extract-{low,}bits.ll: one more pattern a with truncation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@362330 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/CodeGen/X86/extract-bits.ll | 829 ++++++++++++++++------------ test/CodeGen/X86/extract-lowbits.ll | 408 ++++++++------ 2 files changed, 727 insertions(+), 510 deletions(-) diff --git a/test/CodeGen/X86/extract-bits.ll b/test/CodeGen/X86/extract-bits.ll index 6a594c18d4e..ed0bdf3efc0 100644 --- a/test/CodeGen/X86/extract-bits.ll +++ b/test/CodeGen/X86/extract-bits.ll @@ -2093,6 +2093,139 @@ define i32 @bextr64_32_a2(i64 %val, i64 %numskipbits, i32 %numlowbits) nounwind ret i32 %truncmasked } +; Shifting happens in 64-bit. Mask is 32-bit, but calculated in 64-bit. +; Masking is 64-bit. Then truncation. +define i32 @bextr64_32_a3(i64 %val, i64 %numskipbits, i64 %numlowbits) nounwind { +; X86-NOBMI-LABEL: bextr64_32_a3: +; X86-NOBMI: # %bb.0: +; X86-NOBMI-NEXT: pushl %edi +; X86-NOBMI-NEXT: pushl %esi +; X86-NOBMI-NEXT: movb {{[0-9]+}}(%esp), %dl +; X86-NOBMI-NEXT: movb {{[0-9]+}}(%esp), %cl +; X86-NOBMI-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-NOBMI-NEXT: movl {{[0-9]+}}(%esp), %edi +; X86-NOBMI-NEXT: movl %edi, %esi +; X86-NOBMI-NEXT: shrl %cl, %esi +; X86-NOBMI-NEXT: shrdl %cl, %edi, %eax +; X86-NOBMI-NEXT: testb $32, %cl +; X86-NOBMI-NEXT: jne .LBB18_2 +; X86-NOBMI-NEXT: # %bb.1: +; X86-NOBMI-NEXT: movl %eax, %esi +; X86-NOBMI-NEXT: .LBB18_2: +; X86-NOBMI-NEXT: movl $1, %edi +; X86-NOBMI-NEXT: movl %edx, %ecx +; X86-NOBMI-NEXT: shll %cl, %edi +; X86-NOBMI-NEXT: xorl %eax, %eax +; X86-NOBMI-NEXT: testb $32, %dl +; X86-NOBMI-NEXT: jne .LBB18_4 +; X86-NOBMI-NEXT: # %bb.3: +; X86-NOBMI-NEXT: movl %edi, %eax +; X86-NOBMI-NEXT: .LBB18_4: +; X86-NOBMI-NEXT: decl %eax +; X86-NOBMI-NEXT: andl %esi, %eax +; X86-NOBMI-NEXT: popl %esi +; X86-NOBMI-NEXT: popl %edi +; X86-NOBMI-NEXT: retl +; +; X86-BMI1NOTBM-LABEL: bextr64_32_a3: +; X86-BMI1NOTBM: # %bb.0: +; X86-BMI1NOTBM-NEXT: pushl %edi +; X86-BMI1NOTBM-NEXT: pushl %esi +; X86-BMI1NOTBM-NEXT: movb {{[0-9]+}}(%esp), %dl +; X86-BMI1NOTBM-NEXT: movb {{[0-9]+}}(%esp), %cl +; X86-BMI1NOTBM-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-BMI1NOTBM-NEXT: movl {{[0-9]+}}(%esp), %edi +; X86-BMI1NOTBM-NEXT: movl %edi, %esi +; X86-BMI1NOTBM-NEXT: shrl %cl, %esi +; X86-BMI1NOTBM-NEXT: shrdl %cl, %edi, %eax +; X86-BMI1NOTBM-NEXT: testb $32, %cl +; X86-BMI1NOTBM-NEXT: jne .LBB18_2 +; X86-BMI1NOTBM-NEXT: # %bb.1: +; X86-BMI1NOTBM-NEXT: movl %eax, %esi +; X86-BMI1NOTBM-NEXT: .LBB18_2: +; X86-BMI1NOTBM-NEXT: movl $1, %edi +; X86-BMI1NOTBM-NEXT: movl %edx, %ecx +; X86-BMI1NOTBM-NEXT: shll %cl, %edi +; X86-BMI1NOTBM-NEXT: xorl %eax, %eax +; X86-BMI1NOTBM-NEXT: testb $32, %dl +; X86-BMI1NOTBM-NEXT: jne .LBB18_4 +; X86-BMI1NOTBM-NEXT: # %bb.3: +; X86-BMI1NOTBM-NEXT: movl %edi, %eax +; X86-BMI1NOTBM-NEXT: .LBB18_4: +; X86-BMI1NOTBM-NEXT: decl %eax +; X86-BMI1NOTBM-NEXT: andl %esi, %eax +; X86-BMI1NOTBM-NEXT: popl %esi +; X86-BMI1NOTBM-NEXT: popl %edi +; X86-BMI1NOTBM-NEXT: retl +; +; X86-BMI1BMI2-LABEL: bextr64_32_a3: +; X86-BMI1BMI2: # %bb.0: +; X86-BMI1BMI2-NEXT: pushl %ebx +; X86-BMI1BMI2-NEXT: movb {{[0-9]+}}(%esp), %bl +; X86-BMI1BMI2-NEXT: movb {{[0-9]+}}(%esp), %cl +; X86-BMI1BMI2-NEXT: movl {{[0-9]+}}(%esp), %edx +; X86-BMI1BMI2-NEXT: movl {{[0-9]+}}(%esp), %eax +; X86-BMI1BMI2-NEXT: shrdl %cl, %eax, %edx +; X86-BMI1BMI2-NEXT: testb $32, %cl +; X86-BMI1BMI2-NEXT: je .LBB18_2 +; X86-BMI1BMI2-NEXT: # %bb.1: +; X86-BMI1BMI2-NEXT: shrxl %ecx, %eax, %edx +; X86-BMI1BMI2-NEXT: .LBB18_2: +; X86-BMI1BMI2-NEXT: xorl %eax, %eax +; X86-BMI1BMI2-NEXT: testb $32, %bl +; X86-BMI1BMI2-NEXT: jne .LBB18_4 +; X86-BMI1BMI2-NEXT: # %bb.3: +; X86-BMI1BMI2-NEXT: movl $1, %eax +; X86-BMI1BMI2-NEXT: shlxl %ebx, %eax, %eax +; X86-BMI1BMI2-NEXT: .LBB18_4: +; X86-BMI1BMI2-NEXT: decl %eax +; X86-BMI1BMI2-NEXT: andl %edx, %eax +; X86-BMI1BMI2-NEXT: popl %ebx +; X86-BMI1BMI2-NEXT: retl +; +; X64-NOBMI-LABEL: bextr64_32_a3: +; X64-NOBMI: # %bb.0: +; X64-NOBMI-NEXT: movq %rsi, %rcx +; X64-NOBMI-NEXT: # kill: def $cl killed $cl killed $rcx +; X64-NOBMI-NEXT: shrq %cl, %rdi +; X64-NOBMI-NEXT: movl $1, %eax +; X64-NOBMI-NEXT: movl %edx, %ecx +; X64-NOBMI-NEXT: shlq %cl, %rax +; X64-NOBMI-NEXT: decl %eax +; X64-NOBMI-NEXT: andl %edi, %eax +; X64-NOBMI-NEXT: # kill: def $eax killed $eax killed $rax +; X64-NOBMI-NEXT: retq +; +; X64-BMI1NOTBM-LABEL: bextr64_32_a3: +; X64-BMI1NOTBM: # %bb.0: +; X64-BMI1NOTBM-NEXT: movq %rsi, %rcx +; X64-BMI1NOTBM-NEXT: # kill: def $cl killed $cl killed $rcx +; X64-BMI1NOTBM-NEXT: shrq %cl, %rdi +; X64-BMI1NOTBM-NEXT: movl $1, %eax +; X64-BMI1NOTBM-NEXT: movl %edx, %ecx +; X64-BMI1NOTBM-NEXT: shlq %cl, %rax +; X64-BMI1NOTBM-NEXT: decl %eax +; X64-BMI1NOTBM-NEXT: andl %edi, %eax +; X64-BMI1NOTBM-NEXT: # kill: def $eax killed $eax killed $rax +; X64-BMI1NOTBM-NEXT: retq +; +; X64-BMI1BMI2-LABEL: bextr64_32_a3: +; X64-BMI1BMI2: # %bb.0: +; X64-BMI1BMI2-NEXT: shrxq %rsi, %rdi, %rax +; X64-BMI1BMI2-NEXT: movl $1, %ecx +; X64-BMI1BMI2-NEXT: shlxq %rdx, %rcx, %rcx +; X64-BMI1BMI2-NEXT: decl %ecx +; X64-BMI1BMI2-NEXT: andl %ecx, %eax +; X64-BMI1BMI2-NEXT: # kill: def $eax killed $eax killed $rax +; X64-BMI1BMI2-NEXT: retq + %shifted = lshr i64 %val, %numskipbits + %onebit = shl i64 1, %numlowbits + %mask = add nsw i64 %onebit, 4294967295 + %masked = and i64 %mask, %shifted + %truncmasked = trunc i64 %masked to i32 + ret i32 %truncmasked +} + ; ---------------------------------------------------------------------------- ; ; Pattern b. 32-bit ; ---------------------------------------------------------------------------- ; @@ -2554,22 +2687,22 @@ define i64 @bextr64_b0(i64 %val, i64 %numskipbits, i64 %numlowbits) nounwind { ; X86-NOBMI-NEXT: shrl %cl, %edi ; X86-NOBMI-NEXT: shrdl %cl, %eax, %esi ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: je .LBB24_2 +; X86-NOBMI-NEXT: je .LBB25_2 ; X86-NOBMI-NEXT: # %bb.1: ; X86-NOBMI-NEXT: movl %edi, %esi ; X86-NOBMI-NEXT: xorl %edi, %edi -; X86-NOBMI-NEXT: .LBB24_2: +; X86-NOBMI-NEXT: .LBB25_2: ; X86-NOBMI-NEXT: movl $-1, %edx ; X86-NOBMI-NEXT: movl $-1, %eax ; X86-NOBMI-NEXT: movb %ch, %cl ; X86-NOBMI-NEXT: shll %cl, %eax ; X86-NOBMI-NEXT: shldl %cl, %edx, %edx ; X86-NOBMI-NEXT: testb $32, %ch -; X86-NOBMI-NEXT: je .LBB24_4 +; X86-NOBMI-NEXT: je .LBB25_4 ; X86-NOBMI-NEXT: # %bb.3: ; X86-NOBMI-NEXT: movl %eax, %edx ; X86-NOBMI-NEXT: xorl %eax, %eax -; X86-NOBMI-NEXT: .LBB24_4: +; X86-NOBMI-NEXT: .LBB25_4: ; X86-NOBMI-NEXT: notl %edx ; X86-NOBMI-NEXT: andl %edi, %edx ; X86-NOBMI-NEXT: notl %eax @@ -2591,22 +2724,22 @@ define i64 @bextr64_b0(i64 %val, i64 %numskipbits, i64 %numlowbits) nounwind { ; X86-BMI1NOTBM-NEXT: shrl %cl, %edx ; X86-BMI1NOTBM-NEXT: shrdl %cl, %edi, %esi ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: je .LBB24_2 +; X86-BMI1NOTBM-NEXT: je .LBB25_2 ; X86-BMI1NOTBM-NEXT: # %bb.1: ; X86-BMI1NOTBM-NEXT: movl %edx, %esi ; X86-BMI1NOTBM-NEXT: xorl %edx, %edx -; X86-BMI1NOTBM-NEXT: .LBB24_2: +; X86-BMI1NOTBM-NEXT: .LBB25_2: ; X86-BMI1NOTBM-NEXT: movl $-1, %edi ; X86-BMI1NOTBM-NEXT: movl $-1, %ebx ; X86-BMI1NOTBM-NEXT: movl %eax, %ecx ; X86-BMI1NOTBM-NEXT: shll %cl, %ebx ; X86-BMI1NOTBM-NEXT: shldl %cl, %edi, %edi ; X86-BMI1NOTBM-NEXT: testb $32, %al -; X86-BMI1NOTBM-NEXT: je .LBB24_4 +; X86-BMI1NOTBM-NEXT: je .LBB25_4 ; X86-BMI1NOTBM-NEXT: # %bb.3: ; X86-BMI1NOTBM-NEXT: movl %ebx, %edi ; X86-BMI1NOTBM-NEXT: xorl %ebx, %ebx -; X86-BMI1NOTBM-NEXT: .LBB24_4: +; X86-BMI1NOTBM-NEXT: .LBB25_4: ; X86-BMI1NOTBM-NEXT: andnl %edx, %edi, %edx ; X86-BMI1NOTBM-NEXT: andnl %esi, %ebx, %eax ; X86-BMI1NOTBM-NEXT: popl %esi @@ -2626,21 +2759,21 @@ define i64 @bextr64_b0(i64 %val, i64 %numskipbits, i64 %numlowbits) nounwind { ; X86-BMI1BMI2-NEXT: shrdl %cl, %edx, %esi ; X86-BMI1BMI2-NEXT: shrxl %ecx, %edx, %edx ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB24_2 +; X86-BMI1BMI2-NEXT: je .LBB25_2 ; X86-BMI1BMI2-NEXT: # %bb.1: ; X86-BMI1BMI2-NEXT: movl %edx, %esi ; X86-BMI1BMI2-NEXT: xorl %edx, %edx -; X86-BMI1BMI2-NEXT: .LBB24_2: +; X86-BMI1BMI2-NEXT: .LBB25_2: ; X86-BMI1BMI2-NEXT: movl $-1, %edi ; X86-BMI1BMI2-NEXT: shlxl %eax, %edi, %ebx ; X86-BMI1BMI2-NEXT: movl %eax, %ecx ; X86-BMI1BMI2-NEXT: shldl %cl, %edi, %edi ; X86-BMI1BMI2-NEXT: testb $32, %al -; X86-BMI1BMI2-NEXT: je .LBB24_4 +; X86-BMI1BMI2-NEXT: je .LBB25_4 ; X86-BMI1BMI2-NEXT: # %bb.3: ; X86-BMI1BMI2-NEXT: movl %ebx, %edi ; X86-BMI1BMI2-NEXT: xorl %ebx, %ebx -; X86-BMI1BMI2-NEXT: .LBB24_4: +; X86-BMI1BMI2-NEXT: .LBB25_4: ; X86-BMI1BMI2-NEXT: andnl %edx, %edi, %edx ; X86-BMI1BMI2-NEXT: andnl %esi, %ebx, %eax ; X86-BMI1BMI2-NEXT: popl %esi @@ -2693,22 +2826,22 @@ define i64 @bextr64_b1_indexzext(i64 %val, i8 zeroext %numskipbits, i8 zeroext % ; X86-NOBMI-NEXT: shrl %cl, %edi ; X86-NOBMI-NEXT: shrdl %cl, %eax, %esi ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: je .LBB25_2 +; X86-NOBMI-NEXT: je .LBB26_2 ; X86-NOBMI-NEXT: # %bb.1: ; X86-NOBMI-NEXT: movl %edi, %esi ; X86-NOBMI-NEXT: xorl %edi, %edi -; X86-NOBMI-NEXT: .LBB25_2: +; X86-NOBMI-NEXT: .LBB26_2: ; X86-NOBMI-NEXT: movl $-1, %edx ; X86-NOBMI-NEXT: movl $-1, %eax ; X86-NOBMI-NEXT: movb %ch, %cl ; X86-NOBMI-NEXT: shll %cl, %eax ; X86-NOBMI-NEXT: shldl %cl, %edx, %edx ; X86-NOBMI-NEXT: testb $32, %ch -; X86-NOBMI-NEXT: je .LBB25_4 +; X86-NOBMI-NEXT: je .LBB26_4 ; X86-NOBMI-NEXT: # %bb.3: ; X86-NOBMI-NEXT: movl %eax, %edx ; X86-NOBMI-NEXT: xorl %eax, %eax -; X86-NOBMI-NEXT: .LBB25_4: +; X86-NOBMI-NEXT: .LBB26_4: ; X86-NOBMI-NEXT: notl %edx ; X86-NOBMI-NEXT: andl %edi, %edx ; X86-NOBMI-NEXT: notl %eax @@ -2730,22 +2863,22 @@ define i64 @bextr64_b1_indexzext(i64 %val, i8 zeroext %numskipbits, i8 zeroext % ; X86-BMI1NOTBM-NEXT: shrl %cl, %edx ; X86-BMI1NOTBM-NEXT: shrdl %cl, %edi, %esi ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: je .LBB25_2 +; X86-BMI1NOTBM-NEXT: je .LBB26_2 ; X86-BMI1NOTBM-NEXT: # %bb.1: ; X86-BMI1NOTBM-NEXT: movl %edx, %esi ; X86-BMI1NOTBM-NEXT: xorl %edx, %edx -; X86-BMI1NOTBM-NEXT: .LBB25_2: +; X86-BMI1NOTBM-NEXT: .LBB26_2: ; X86-BMI1NOTBM-NEXT: movl $-1, %edi ; X86-BMI1NOTBM-NEXT: movl $-1, %ebx ; X86-BMI1NOTBM-NEXT: movl %eax, %ecx ; X86-BMI1NOTBM-NEXT: shll %cl, %ebx ; X86-BMI1NOTBM-NEXT: shldl %cl, %edi, %edi ; X86-BMI1NOTBM-NEXT: testb $32, %al -; X86-BMI1NOTBM-NEXT: je .LBB25_4 +; X86-BMI1NOTBM-NEXT: je .LBB26_4 ; X86-BMI1NOTBM-NEXT: # %bb.3: ; X86-BMI1NOTBM-NEXT: movl %ebx, %edi ; X86-BMI1NOTBM-NEXT: xorl %ebx, %ebx -; X86-BMI1NOTBM-NEXT: .LBB25_4: +; X86-BMI1NOTBM-NEXT: .LBB26_4: ; X86-BMI1NOTBM-NEXT: andnl %edx, %edi, %edx ; X86-BMI1NOTBM-NEXT: andnl %esi, %ebx, %eax ; X86-BMI1NOTBM-NEXT: popl %esi @@ -2765,21 +2898,21 @@ define i64 @bextr64_b1_indexzext(i64 %val, i8 zeroext %numskipbits, i8 zeroext % ; X86-BMI1BMI2-NEXT: shrdl %cl, %edx, %esi ; X86-BMI1BMI2-NEXT: shrxl %ecx, %edx, %edx ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB25_2 +; X86-BMI1BMI2-NEXT: je .LBB26_2 ; X86-BMI1BMI2-NEXT: # %bb.1: ; X86-BMI1BMI2-NEXT: movl %edx, %esi ; X86-BMI1BMI2-NEXT: xorl %edx, %edx -; X86-BMI1BMI2-NEXT: .LBB25_2: +; X86-BMI1BMI2-NEXT: .LBB26_2: ; X86-BMI1BMI2-NEXT: movl $-1, %edi ; X86-BMI1BMI2-NEXT: shlxl %eax, %edi, %ebx ; X86-BMI1BMI2-NEXT: movl %eax, %ecx ; X86-BMI1BMI2-NEXT: shldl %cl, %edi, %edi ; X86-BMI1BMI2-NEXT: testb $32, %al -; X86-BMI1BMI2-NEXT: je .LBB25_4 +; X86-BMI1BMI2-NEXT: je .LBB26_4 ; X86-BMI1BMI2-NEXT: # %bb.3: ; X86-BMI1BMI2-NEXT: movl %ebx, %edi ; X86-BMI1BMI2-NEXT: xorl %ebx, %ebx -; X86-BMI1BMI2-NEXT: .LBB25_4: +; X86-BMI1BMI2-NEXT: .LBB26_4: ; X86-BMI1BMI2-NEXT: andnl %edx, %edi, %edx ; X86-BMI1BMI2-NEXT: andnl %esi, %ebx, %eax ; X86-BMI1BMI2-NEXT: popl %esi @@ -2837,22 +2970,22 @@ define i64 @bextr64_b2_load(i64* %w, i64 %numskipbits, i64 %numlowbits) nounwind ; X86-NOBMI-NEXT: shrl %cl, %edi ; X86-NOBMI-NEXT: shrdl %cl, %eax, %esi ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: je .LBB26_2 +; X86-NOBMI-NEXT: je .LBB27_2 ; X86-NOBMI-NEXT: # %bb.1: ; X86-NOBMI-NEXT: movl %edi, %esi ; X86-NOBMI-NEXT: xorl %edi, %edi -; X86-NOBMI-NEXT: .LBB26_2: +; X86-NOBMI-NEXT: .LBB27_2: ; X86-NOBMI-NEXT: movl $-1, %edx ; X86-NOBMI-NEXT: movl $-1, %eax ; X86-NOBMI-NEXT: movb %ch, %cl ; X86-NOBMI-NEXT: shll %cl, %eax ; X86-NOBMI-NEXT: shldl %cl, %edx, %edx ; X86-NOBMI-NEXT: testb $32, %ch -; X86-NOBMI-NEXT: je .LBB26_4 +; X86-NOBMI-NEXT: je .LBB27_4 ; X86-NOBMI-NEXT: # %bb.3: ; X86-NOBMI-NEXT: movl %eax, %edx ; X86-NOBMI-NEXT: xorl %eax, %eax -; X86-NOBMI-NEXT: .LBB26_4: +; X86-NOBMI-NEXT: .LBB27_4: ; X86-NOBMI-NEXT: notl %edx ; X86-NOBMI-NEXT: andl %edi, %edx ; X86-NOBMI-NEXT: notl %eax @@ -2875,22 +3008,22 @@ define i64 @bextr64_b2_load(i64* %w, i64 %numskipbits, i64 %numlowbits) nounwind ; X86-BMI1NOTBM-NEXT: shrl %cl, %edx ; X86-BMI1NOTBM-NEXT: shrdl %cl, %edi, %esi ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: je .LBB26_2 +; X86-BMI1NOTBM-NEXT: je .LBB27_2 ; X86-BMI1NOTBM-NEXT: # %bb.1: ; X86-BMI1NOTBM-NEXT: movl %edx, %esi ; X86-BMI1NOTBM-NEXT: xorl %edx, %edx -; X86-BMI1NOTBM-NEXT: .LBB26_2: +; X86-BMI1NOTBM-NEXT: .LBB27_2: ; X86-BMI1NOTBM-NEXT: movl $-1, %edi ; X86-BMI1NOTBM-NEXT: movl $-1, %ebx ; X86-BMI1NOTBM-NEXT: movl %eax, %ecx ; X86-BMI1NOTBM-NEXT: shll %cl, %ebx ; X86-BMI1NOTBM-NEXT: shldl %cl, %edi, %edi ; X86-BMI1NOTBM-NEXT: testb $32, %al -; X86-BMI1NOTBM-NEXT: je .LBB26_4 +; X86-BMI1NOTBM-NEXT: je .LBB27_4 ; X86-BMI1NOTBM-NEXT: # %bb.3: ; X86-BMI1NOTBM-NEXT: movl %ebx, %edi ; X86-BMI1NOTBM-NEXT: xorl %ebx, %ebx -; X86-BMI1NOTBM-NEXT: .LBB26_4: +; X86-BMI1NOTBM-NEXT: .LBB27_4: ; X86-BMI1NOTBM-NEXT: andnl %edx, %edi, %edx ; X86-BMI1NOTBM-NEXT: andnl %esi, %ebx, %eax ; X86-BMI1NOTBM-NEXT: popl %esi @@ -2911,21 +3044,21 @@ define i64 @bextr64_b2_load(i64* %w, i64 %numskipbits, i64 %numlowbits) nounwind ; X86-BMI1BMI2-NEXT: shrxl %ecx, %edi, %edx ; X86-BMI1BMI2-NEXT: shrdl %cl, %edi, %esi ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB26_2 +; X86-BMI1BMI2-NEXT: je .LBB27_2 ; X86-BMI1BMI2-NEXT: # %bb.1: ; X86-BMI1BMI2-NEXT: movl %edx, %esi ; X86-BMI1BMI2-NEXT: xorl %edx, %edx -; X86-BMI1BMI2-NEXT: .LBB26_2: +; X86-BMI1BMI2-NEXT: .LBB27_2: ; X86-BMI1BMI2-NEXT: movl $-1, %edi ; X86-BMI1BMI2-NEXT: shlxl %eax, %edi, %ebx ; X86-BMI1BMI2-NEXT: movl %eax, %ecx ; X86-BMI1BMI2-NEXT: shldl %cl, %edi, %edi ; X86-BMI1BMI2-NEXT: testb $32, %al -; X86-BMI1BMI2-NEXT: je .LBB26_4 +; X86-BMI1BMI2-NEXT: je .LBB27_4 ; X86-BMI1BMI2-NEXT: # %bb.3: ; X86-BMI1BMI2-NEXT: movl %ebx, %edi ; X86-BMI1BMI2-NEXT: xorl %ebx, %ebx -; X86-BMI1BMI2-NEXT: .LBB26_4: +; X86-BMI1BMI2-NEXT: .LBB27_4: ; X86-BMI1BMI2-NEXT: andnl %edx, %edi, %edx ; X86-BMI1BMI2-NEXT: andnl %esi, %ebx, %eax ; X86-BMI1BMI2-NEXT: popl %esi @@ -2981,22 +3114,22 @@ define i64 @bextr64_b3_load_indexzext(i64* %w, i8 zeroext %numskipbits, i8 zeroe ; X86-NOBMI-NEXT: shrl %cl, %edi ; X86-NOBMI-NEXT: shrdl %cl, %eax, %esi ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: je .LBB27_2 +; X86-NOBMI-NEXT: je .LBB28_2 ; X86-NOBMI-NEXT: # %bb.1: ; X86-NOBMI-NEXT: movl %edi, %esi ; X86-NOBMI-NEXT: xorl %edi, %edi -; X86-NOBMI-NEXT: .LBB27_2: +; X86-NOBMI-NEXT: .LBB28_2: ; X86-NOBMI-NEXT: movl $-1, %edx ; X86-NOBMI-NEXT: movl $-1, %eax ; X86-NOBMI-NEXT: movb %ch, %cl ; X86-NOBMI-NEXT: shll %cl, %eax ; X86-NOBMI-NEXT: shldl %cl, %edx, %edx ; X86-NOBMI-NEXT: testb $32, %ch -; X86-NOBMI-NEXT: je .LBB27_4 +; X86-NOBMI-NEXT: je .LBB28_4 ; X86-NOBMI-NEXT: # %bb.3: ; X86-NOBMI-NEXT: movl %eax, %edx ; X86-NOBMI-NEXT: xorl %eax, %eax -; X86-NOBMI-NEXT: .LBB27_4: +; X86-NOBMI-NEXT: .LBB28_4: ; X86-NOBMI-NEXT: notl %edx ; X86-NOBMI-NEXT: andl %edi, %edx ; X86-NOBMI-NEXT: notl %eax @@ -3019,22 +3152,22 @@ define i64 @bextr64_b3_load_indexzext(i64* %w, i8 zeroext %numskipbits, i8 zeroe ; X86-BMI1NOTBM-NEXT: shrl %cl, %edx ; X86-BMI1NOTBM-NEXT: shrdl %cl, %edi, %esi ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: je .LBB27_2 +; X86-BMI1NOTBM-NEXT: je .LBB28_2 ; X86-BMI1NOTBM-NEXT: # %bb.1: ; X86-BMI1NOTBM-NEXT: movl %edx, %esi ; X86-BMI1NOTBM-NEXT: xorl %edx, %edx -; X86-BMI1NOTBM-NEXT: .LBB27_2: +; X86-BMI1NOTBM-NEXT: .LBB28_2: ; X86-BMI1NOTBM-NEXT: movl $-1, %edi ; X86-BMI1NOTBM-NEXT: movl $-1, %ebx ; X86-BMI1NOTBM-NEXT: movl %eax, %ecx ; X86-BMI1NOTBM-NEXT: shll %cl, %ebx ; X86-BMI1NOTBM-NEXT: shldl %cl, %edi, %edi ; X86-BMI1NOTBM-NEXT: testb $32, %al -; X86-BMI1NOTBM-NEXT: je .LBB27_4 +; X86-BMI1NOTBM-NEXT: je .LBB28_4 ; X86-BMI1NOTBM-NEXT: # %bb.3: ; X86-BMI1NOTBM-NEXT: movl %ebx, %edi ; X86-BMI1NOTBM-NEXT: xorl %ebx, %ebx -; X86-BMI1NOTBM-NEXT: .LBB27_4: +; X86-BMI1NOTBM-NEXT: .LBB28_4: ; X86-BMI1NOTBM-NEXT: andnl %edx, %edi, %edx ; X86-BMI1NOTBM-NEXT: andnl %esi, %ebx, %eax ; X86-BMI1NOTBM-NEXT: popl %esi @@ -3055,21 +3188,21 @@ define i64 @bextr64_b3_load_indexzext(i64* %w, i8 zeroext %numskipbits, i8 zeroe ; X86-BMI1BMI2-NEXT: shrxl %ecx, %edi, %edx ; X86-BMI1BMI2-NEXT: shrdl %cl, %edi, %esi ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB27_2 +; X86-BMI1BMI2-NEXT: je .LBB28_2 ; X86-BMI1BMI2-NEXT: # %bb.1: ; X86-BMI1BMI2-NEXT: movl %edx, %esi ; X86-BMI1BMI2-NEXT: xorl %edx, %edx -; X86-BMI1BMI2-NEXT: .LBB27_2: +; X86-BMI1BMI2-NEXT: .LBB28_2: ; X86-BMI1BMI2-NEXT: movl $-1, %edi ; X86-BMI1BMI2-NEXT: shlxl %eax, %edi, %ebx ; X86-BMI1BMI2-NEXT: movl %eax, %ecx ; X86-BMI1BMI2-NEXT: shldl %cl, %edi, %edi ; X86-BMI1BMI2-NEXT: testb $32, %al -; X86-BMI1BMI2-NEXT: je .LBB27_4 +; X86-BMI1BMI2-NEXT: je .LBB28_4 ; X86-BMI1BMI2-NEXT: # %bb.3: ; X86-BMI1BMI2-NEXT: movl %ebx, %edi ; X86-BMI1BMI2-NEXT: xorl %ebx, %ebx -; X86-BMI1BMI2-NEXT: .LBB27_4: +; X86-BMI1BMI2-NEXT: .LBB28_4: ; X86-BMI1BMI2-NEXT: andnl %edx, %edi, %edx ; X86-BMI1BMI2-NEXT: andnl %esi, %ebx, %eax ; X86-BMI1BMI2-NEXT: popl %esi @@ -3128,22 +3261,22 @@ define i64 @bextr64_b4_commutative(i64 %val, i64 %numskipbits, i64 %numlowbits) ; X86-NOBMI-NEXT: shrl %cl, %edx ; X86-NOBMI-NEXT: shrdl %cl, %esi, %eax ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: je .LBB28_2 +; X86-NOBMI-NEXT: je .LBB29_2 ; X86-NOBMI-NEXT: # %bb.1: ; X86-NOBMI-NEXT: movl %edx, %eax ; X86-NOBMI-NEXT: xorl %edx, %edx -; X86-NOBMI-NEXT: .LBB28_2: +; X86-NOBMI-NEXT: .LBB29_2: ; X86-NOBMI-NEXT: movl $-1, %edi ; X86-NOBMI-NEXT: movl $-1, %esi ; X86-NOBMI-NEXT: movb %ch, %cl ; X86-NOBMI-NEXT: shll %cl, %esi ; X86-NOBMI-NEXT: shldl %cl, %edi, %edi ; X86-NOBMI-NEXT: testb $32, %ch -; X86-NOBMI-NEXT: je .LBB28_4 +; X86-NOBMI-NEXT: je .LBB29_4 ; X86-NOBMI-NEXT: # %bb.3: ; X86-NOBMI-NEXT: movl %esi, %edi ; X86-NOBMI-NEXT: xorl %esi, %esi -; X86-NOBMI-NEXT: .LBB28_4: +; X86-NOBMI-NEXT: .LBB29_4: ; X86-NOBMI-NEXT: notl %edi ; X86-NOBMI-NEXT: andl %edi, %edx ; X86-NOBMI-NEXT: notl %esi @@ -3165,22 +3298,22 @@ define i64 @bextr64_b4_commutative(i64 %val, i64 %numskipbits, i64 %numlowbits) ; X86-BMI1NOTBM-NEXT: shrl %cl, %edx ; X86-BMI1NOTBM-NEXT: shrdl %cl, %edi, %esi ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: je .LBB28_2 +; X86-BMI1NOTBM-NEXT: je .LBB29_2 ; X86-BMI1NOTBM-NEXT: # %bb.1: ; X86-BMI1NOTBM-NEXT: movl %edx, %esi ; X86-BMI1NOTBM-NEXT: xorl %edx, %edx -; X86-BMI1NOTBM-NEXT: .LBB28_2: +; X86-BMI1NOTBM-NEXT: .LBB29_2: ; X86-BMI1NOTBM-NEXT: movl $-1, %edi ; X86-BMI1NOTBM-NEXT: movl $-1, %ebx ; X86-BMI1NOTBM-NEXT: movl %eax, %ecx ; X86-BMI1NOTBM-NEXT: shll %cl, %ebx ; X86-BMI1NOTBM-NEXT: shldl %cl, %edi, %edi ; X86-BMI1NOTBM-NEXT: testb $32, %al -; X86-BMI1NOTBM-NEXT: je .LBB28_4 +; X86-BMI1NOTBM-NEXT: je .LBB29_4 ; X86-BMI1NOTBM-NEXT: # %bb.3: ; X86-BMI1NOTBM-NEXT: movl %ebx, %edi ; X86-BMI1NOTBM-NEXT: xorl %ebx, %ebx -; X86-BMI1NOTBM-NEXT: .LBB28_4: +; X86-BMI1NOTBM-NEXT: .LBB29_4: ; X86-BMI1NOTBM-NEXT: andnl %edx, %edi, %edx ; X86-BMI1NOTBM-NEXT: andnl %esi, %ebx, %eax ; X86-BMI1NOTBM-NEXT: popl %esi @@ -3200,21 +3333,21 @@ define i64 @bextr64_b4_commutative(i64 %val, i64 %numskipbits, i64 %numlowbits) ; X86-BMI1BMI2-NEXT: shrdl %cl, %edx, %esi ; X86-BMI1BMI2-NEXT: shrxl %ecx, %edx, %edx ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB28_2 +; X86-BMI1BMI2-NEXT: je .LBB29_2 ; X86-BMI1BMI2-NEXT: # %bb.1: ; X86-BMI1BMI2-NEXT: movl %edx, %esi ; X86-BMI1BMI2-NEXT: xorl %edx, %edx -; X86-BMI1BMI2-NEXT: .LBB28_2: +; X86-BMI1BMI2-NEXT: .LBB29_2: ; X86-BMI1BMI2-NEXT: movl $-1, %edi ; X86-BMI1BMI2-NEXT: shlxl %eax, %edi, %ebx ; X86-BMI1BMI2-NEXT: movl %eax, %ecx ; X86-BMI1BMI2-NEXT: shldl %cl, %edi, %edi ; X86-BMI1BMI2-NEXT: testb $32, %al -; X86-BMI1BMI2-NEXT: je .LBB28_4 +; X86-BMI1BMI2-NEXT: je .LBB29_4 ; X86-BMI1BMI2-NEXT: # %bb.3: ; X86-BMI1BMI2-NEXT: movl %ebx, %edi ; X86-BMI1BMI2-NEXT: xorl %ebx, %ebx -; X86-BMI1BMI2-NEXT: .LBB28_4: +; X86-BMI1BMI2-NEXT: .LBB29_4: ; X86-BMI1BMI2-NEXT: andnl %edx, %edi, %edx ; X86-BMI1BMI2-NEXT: andnl %esi, %ebx, %eax ; X86-BMI1BMI2-NEXT: popl %esi @@ -3271,22 +3404,22 @@ define i64 @bextr64_b5_skipextrauses(i64 %val, i64 %numskipbits, i64 %numlowbits ; X86-NOBMI-NEXT: shrl %cl, %ebp ; X86-NOBMI-NEXT: shrdl %cl, %esi, %ebx ; X86-NOBMI-NEXT: testb $32, %al -; X86-NOBMI-NEXT: je .LBB29_2 +; X86-NOBMI-NEXT: je .LBB30_2 ; X86-NOBMI-NEXT: # %bb.1: ; X86-NOBMI-NEXT: movl %ebp, %ebx ; X86-NOBMI-NEXT: xorl %ebp, %ebp -; X86-NOBMI-NEXT: .LBB29_2: +; X86-NOBMI-NEXT: .LBB30_2: ; X86-NOBMI-NEXT: movl $-1, %esi ; X86-NOBMI-NEXT: movl $-1, %edi ; X86-NOBMI-NEXT: movl %edx, %ecx ; X86-NOBMI-NEXT: shll %cl, %edi ; X86-NOBMI-NEXT: shldl %cl, %esi, %esi ; X86-NOBMI-NEXT: testb $32, %dl -; X86-NOBMI-NEXT: je .LBB29_4 +; X86-NOBMI-NEXT: je .LBB30_4 ; X86-NOBMI-NEXT: # %bb.3: ; X86-NOBMI-NEXT: movl %edi, %esi ; X86-NOBMI-NEXT: xorl %edi, %edi -; X86-NOBMI-NEXT: .LBB29_4: +; X86-NOBMI-NEXT: .LBB30_4: ; X86-NOBMI-NEXT: notl %esi ; X86-NOBMI-NEXT: andl %ebp, %esi ; X86-NOBMI-NEXT: notl %edi @@ -3321,22 +3454,22 @@ define i64 @bextr64_b5_skipextrauses(i64 %val, i64 %numskipbits, i64 %numlowbits ; X86-BMI1NOTBM-NEXT: shrl %cl, %esi ; X86-BMI1NOTBM-NEXT: shrdl %cl, %ebx, %edi ; X86-BMI1NOTBM-NEXT: testb $32, %al -; X86-BMI1NOTBM-NEXT: je .LBB29_2 +; X86-BMI1NOTBM-NEXT: je .LBB30_2 ; X86-BMI1NOTBM-NEXT: # %bb.1: ; X86-BMI1NOTBM-NEXT: movl %esi, %edi ; X86-BMI1NOTBM-NEXT: xorl %esi, %esi -; X86-BMI1NOTBM-NEXT: .LBB29_2: +; X86-BMI1NOTBM-NEXT: .LBB30_2: ; X86-BMI1NOTBM-NEXT: movl $-1, %ebx ; X86-BMI1NOTBM-NEXT: movl $-1, %ebp ; X86-BMI1NOTBM-NEXT: movl %edx, %ecx ; X86-BMI1NOTBM-NEXT: shll %cl, %ebp ; X86-BMI1NOTBM-NEXT: shldl %cl, %ebx, %ebx ; X86-BMI1NOTBM-NEXT: testb $32, %dl -; X86-BMI1NOTBM-NEXT: je .LBB29_4 +; X86-BMI1NOTBM-NEXT: je .LBB30_4 ; X86-BMI1NOTBM-NEXT: # %bb.3: ; X86-BMI1NOTBM-NEXT: movl %ebp, %ebx ; X86-BMI1NOTBM-NEXT: xorl %ebp, %ebp -; X86-BMI1NOTBM-NEXT: .LBB29_4: +; X86-BMI1NOTBM-NEXT: .LBB30_4: ; X86-BMI1NOTBM-NEXT: andnl %esi, %ebx, %esi ; X86-BMI1NOTBM-NEXT: andnl %edi, %ebp, %edi ; X86-BMI1NOTBM-NEXT: subl $8, %esp @@ -3368,21 +3501,21 @@ define i64 @bextr64_b5_skipextrauses(i64 %val, i64 %numskipbits, i64 %numlowbits ; X86-BMI1BMI2-NEXT: shrdl %cl, %esi, %edi ; X86-BMI1BMI2-NEXT: shrxl %eax, %esi, %esi ; X86-BMI1BMI2-NEXT: testb $32, %al -; X86-BMI1BMI2-NEXT: je .LBB29_2 +; X86-BMI1BMI2-NEXT: je .LBB30_2 ; X86-BMI1BMI2-NEXT: # %bb.1: ; X86-BMI1BMI2-NEXT: movl %esi, %edi ; X86-BMI1BMI2-NEXT: xorl %esi, %esi -; X86-BMI1BMI2-NEXT: .LBB29_2: +; X86-BMI1BMI2-NEXT: .LBB30_2: ; X86-BMI1BMI2-NEXT: movl $-1, %ebp ; X86-BMI1BMI2-NEXT: shlxl %edx, %ebp, %ebx ; X86-BMI1BMI2-NEXT: movl %edx, %ecx ; X86-BMI1BMI2-NEXT: shldl %cl, %ebp, %ebp ; X86-BMI1BMI2-NEXT: testb $32, %dl -; X86-BMI1BMI2-NEXT: je .LBB29_4 +; X86-BMI1BMI2-NEXT: je .LBB30_4 ; X86-BMI1BMI2-NEXT: # %bb.3: ; X86-BMI1BMI2-NEXT: movl %ebx, %ebp ; X86-BMI1BMI2-NEXT: xorl %ebx, %ebx -; X86-BMI1BMI2-NEXT: .LBB29_4: +; X86-BMI1BMI2-NEXT: .LBB30_4: ; X86-BMI1BMI2-NEXT: andnl %esi, %ebp, %esi ; X86-BMI1BMI2-NEXT: andnl %edi, %ebx, %edi ; X86-BMI1BMI2-NEXT: subl $8, %esp @@ -3462,19 +3595,19 @@ define i32 @bextr64_32_b0(i64 %val, i64 %numskipbits, i8 %numlowbits) nounwind { ; X86-NOBMI-NEXT: shrl %cl, %eax ; X86-NOBMI-NEXT: shrdl %cl, %edi, %esi ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: jne .LBB30_2 +; X86-NOBMI-NEXT: jne .LBB31_2 ; X86-NOBMI-NEXT: # %bb.1: ; X86-NOBMI-NEXT: movl %esi, %eax -; X86-NOBMI-NEXT: .LBB30_2: +; X86-NOBMI-NEXT: .LBB31_2: ; X86-NOBMI-NEXT: movl $-1, %esi ; X86-NOBMI-NEXT: movl %edx, %ecx ; X86-NOBMI-NEXT: shll %cl, %esi ; X86-NOBMI-NEXT: xorl %ecx, %ecx ; X86-NOBMI-NEXT: testb $32, %dl -; X86-NOBMI-NEXT: jne .LBB30_4 +; X86-NOBMI-NEXT: jne .LBB31_4 ; X86-NOBMI-NEXT: # %bb.3: ; X86-NOBMI-NEXT: movl %esi, %ecx -; X86-NOBMI-NEXT: .LBB30_4: +; X86-NOBMI-NEXT: .LBB31_4: ; X86-NOBMI-NEXT: notl %ecx ; X86-NOBMI-NEXT: andl %ecx, %eax ; X86-NOBMI-NEXT: popl %esi @@ -3493,19 +3626,19 @@ define i32 @bextr64_32_b0(i64 %val, i64 %numskipbits, i8 %numlowbits) nounwind { ; X86-BMI1NOTBM-NEXT: shrl %cl, %edx ; X86-BMI1NOTBM-NEXT: shrdl %cl, %edi, %esi ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: jne .LBB30_2 +; X86-BMI1NOTBM-NEXT: jne .LBB31_2 ; X86-BMI1NOTBM-NEXT: # %bb.1: ; X86-BMI1NOTBM-NEXT: movl %esi, %edx -; X86-BMI1NOTBM-NEXT: .LBB30_2: +; X86-BMI1NOTBM-NEXT: .LBB31_2: ; X86-BMI1NOTBM-NEXT: movl $-1, %esi ; X86-BMI1NOTBM-NEXT: movl %eax, %ecx ; X86-BMI1NOTBM-NEXT: shll %cl, %esi ; X86-BMI1NOTBM-NEXT: xorl %ecx, %ecx ; X86-BMI1NOTBM-NEXT: testb $32, %al -; X86-BMI1NOTBM-NEXT: jne .LBB30_4 +; X86-BMI1NOTBM-NEXT: jne .LBB31_4 ; X86-BMI1NOTBM-NEXT: # %bb.3: ; X86-BMI1NOTBM-NEXT: movl %esi, %ecx -; X86-BMI1NOTBM-NEXT: .LBB30_4: +; X86-BMI1NOTBM-NEXT: .LBB31_4: ; X86-BMI1NOTBM-NEXT: andnl %edx, %ecx, %eax ; X86-BMI1NOTBM-NEXT: popl %esi ; X86-BMI1NOTBM-NEXT: popl %edi @@ -3520,17 +3653,17 @@ define i32 @bextr64_32_b0(i64 %val, i64 %numskipbits, i8 %numlowbits) nounwind { ; X86-BMI1BMI2-NEXT: movl {{[0-9]+}}(%esp), %esi ; X86-BMI1BMI2-NEXT: shrdl %cl, %esi, %edx ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB30_2 +; X86-BMI1BMI2-NEXT: je .LBB31_2 ; X86-BMI1BMI2-NEXT: # %bb.1: ; X86-BMI1BMI2-NEXT: shrxl %ecx, %esi, %edx -; X86-BMI1BMI2-NEXT: .LBB30_2: +; X86-BMI1BMI2-NEXT: .LBB31_2: ; X86-BMI1BMI2-NEXT: xorl %ecx, %ecx ; X86-BMI1BMI2-NEXT: testb $32, %al -; X86-BMI1BMI2-NEXT: jne .LBB30_4 +; X86-BMI1BMI2-NEXT: jne .LBB31_4 ; X86-BMI1BMI2-NEXT: # %bb.3: ; X86-BMI1BMI2-NEXT: movl $-1, %ecx ; X86-BMI1BMI2-NEXT: shlxl %eax, %ecx, %ecx -; X86-BMI1BMI2-NEXT: .LBB30_4: +; X86-BMI1BMI2-NEXT: .LBB31_4: ; X86-BMI1BMI2-NEXT: andnl %edx, %ecx, %eax ; X86-BMI1BMI2-NEXT: popl %esi ; X86-BMI1BMI2-NEXT: retl @@ -3590,10 +3723,10 @@ define i32 @bextr64_32_b1(i64 %val, i64 %numskipbits, i8 %numlowbits) nounwind { ; X86-NOBMI-NEXT: shrl %cl, %esi ; X86-NOBMI-NEXT: shrdl %cl, %edi, %eax ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: jne .LBB31_2 +; X86-NOBMI-NEXT: jne .LBB32_2 ; X86-NOBMI-NEXT: # %bb.1: ; X86-NOBMI-NEXT: movl %eax, %esi -; X86-NOBMI-NEXT: .LBB31_2: +; X86-NOBMI-NEXT: .LBB32_2: ; X86-NOBMI-NEXT: movl $-1, %eax ; X86-NOBMI-NEXT: movl %edx, %ecx ; X86-NOBMI-NEXT: shll %cl, %eax @@ -3615,10 +3748,10 @@ define i32 @bextr64_32_b1(i64 %val, i64 %numskipbits, i8 %numlowbits) nounwind { ; X86-BMI1NOTBM-NEXT: shrl %cl, %edx ; X86-BMI1NOTBM-NEXT: shrdl %cl, %edi, %esi ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: jne .LBB31_2 +; X86-BMI1NOTBM-NEXT: jne .LBB32_2 ; X86-BMI1NOTBM-NEXT: # %bb.1: ; X86-BMI1NOTBM-NEXT: movl %esi, %edx -; X86-BMI1NOTBM-NEXT: .LBB31_2: +; X86-BMI1NOTBM-NEXT: .LBB32_2: ; X86-BMI1NOTBM-NEXT: shll $8, %eax ; X86-BMI1NOTBM-NEXT: bextrl %eax, %edx, %eax ; X86-BMI1NOTBM-NEXT: popl %esi @@ -3634,10 +3767,10 @@ define i32 @bextr64_32_b1(i64 %val, i64 %numskipbits, i8 %numlowbits) nounwind { ; X86-BMI1BMI2-NEXT: movl {{[0-9]+}}(%esp), %esi ; X86-BMI1BMI2-NEXT: shrdl %cl, %esi, %edx ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB31_2 +; X86-BMI1BMI2-NEXT: je .LBB32_2 ; X86-BMI1BMI2-NEXT: # %bb.1: ; X86-BMI1BMI2-NEXT: shrxl %ecx, %esi, %edx -; X86-BMI1BMI2-NEXT: .LBB31_2: +; X86-BMI1BMI2-NEXT: .LBB32_2: ; X86-BMI1BMI2-NEXT: bzhil %eax, %edx, %eax ; X86-BMI1BMI2-NEXT: popl %esi ; X86-BMI1BMI2-NEXT: retl @@ -3692,10 +3825,10 @@ define i32 @bextr64_32_b2(i64 %val, i64 %numskipbits, i8 %numlowbits) nounwind { ; X86-NOBMI-NEXT: shrl %cl, %esi ; X86-NOBMI-NEXT: shrdl %cl, %edi, %eax ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: jne .LBB32_2 +; X86-NOBMI-NEXT: jne .LBB33_2 ; X86-NOBMI-NEXT: # %bb.1: ; X86-NOBMI-NEXT: movl %eax, %esi -; X86-NOBMI-NEXT: .LBB32_2: +; X86-NOBMI-NEXT: .LBB33_2: ; X86-NOBMI-NEXT: movl $-1, %eax ; X86-NOBMI-NEXT: movl %edx, %ecx ; X86-NOBMI-NEXT: shll %cl, %eax @@ -3717,10 +3850,10 @@ define i32 @bextr64_32_b2(i64 %val, i64 %numskipbits, i8 %numlowbits) nounwind { ; X86-BMI1NOTBM-NEXT: shrl %cl, %edx ; X86-BMI1NOTBM-NEXT: shrdl %cl, %edi, %esi ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: jne .LBB32_2 +; X86-BMI1NOTBM-NEXT: jne .LBB33_2 ; X86-BMI1NOTBM-NEXT: # %bb.1: ; X86-BMI1NOTBM-NEXT: movl %esi, %edx -; X86-BMI1NOTBM-NEXT: .LBB32_2: +; X86-BMI1NOTBM-NEXT: .LBB33_2: ; X86-BMI1NOTBM-NEXT: shll $8, %eax ; X86-BMI1NOTBM-NEXT: bextrl %eax, %edx, %eax ; X86-BMI1NOTBM-NEXT: popl %esi @@ -3736,10 +3869,10 @@ define i32 @bextr64_32_b2(i64 %val, i64 %numskipbits, i8 %numlowbits) nounwind { ; X86-BMI1BMI2-NEXT: movl {{[0-9]+}}(%esp), %esi ; X86-BMI1BMI2-NEXT: shrdl %cl, %esi, %edx ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB32_2 +; X86-BMI1BMI2-NEXT: je .LBB33_2 ; X86-BMI1BMI2-NEXT: # %bb.1: ; X86-BMI1BMI2-NEXT: shrxl %ecx, %esi, %edx -; X86-BMI1BMI2-NEXT: .LBB32_2: +; X86-BMI1BMI2-NEXT: .LBB33_2: ; X86-BMI1BMI2-NEXT: bzhil %eax, %edx, %eax ; X86-BMI1BMI2-NEXT: popl %esi ; X86-BMI1BMI2-NEXT: retl @@ -3795,19 +3928,19 @@ define i32 @bextr64_32_b3(i64 %val, i64 %numskipbits, i8 %numlowbits) nounwind { ; X86-NOBMI-NEXT: shrl %cl, %eax ; X86-NOBMI-NEXT: shrdl %cl, %edi, %esi ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: jne .LBB33_2 +; X86-NOBMI-NEXT: jne .LBB34_2 ; X86-NOBMI-NEXT: # %bb.1: ; X86-NOBMI-NEXT: movl %esi, %eax -; X86-NOBMI-NEXT: .LBB33_2: +; X86-NOBMI-NEXT: .LBB34_2: ; X86-NOBMI-NEXT: movl $-1, %esi ; X86-NOBMI-NEXT: movl %edx, %ecx ; X86-NOBMI-NEXT: shll %cl, %esi ; X86-NOBMI-NEXT: xorl %ecx, %ecx ; X86-NOBMI-NEXT: testb $32, %dl -; X86-NOBMI-NEXT: jne .LBB33_4 +; X86-NOBMI-NEXT: jne .LBB34_4 ; X86-NOBMI-NEXT: # %bb.3: ; X86-NOBMI-NEXT: movl %esi, %ecx -; X86-NOBMI-NEXT: .LBB33_4: +; X86-NOBMI-NEXT: .LBB34_4: ; X86-NOBMI-NEXT: notl %ecx ; X86-NOBMI-NEXT: andl %ecx, %eax ; X86-NOBMI-NEXT: popl %esi @@ -3826,19 +3959,19 @@ define i32 @bextr64_32_b3(i64 %val, i64 %numskipbits, i8 %numlowbits) nounwind { ; X86-BMI1NOTBM-NEXT: shrl %cl, %edx ; X86-BMI1NOTBM-NEXT: shrdl %cl, %edi, %esi ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: jne .LBB33_2 +; X86-BMI1NOTBM-NEXT: jne .LBB34_2 ; X86-BMI1NOTBM-NEXT: # %bb.1: ; X86-BMI1NOTBM-NEXT: movl %esi, %edx -; X86-BMI1NOTBM-NEXT: .LBB33_2: +; X86-BMI1NOTBM-NEXT: .LBB34_2: ; X86-BMI1NOTBM-NEXT: movl $-1, %esi ; X86-BMI1NOTBM-NEXT: movl %eax, %ecx ; X86-BMI1NOTBM-NEXT: shll %cl, %esi ; X86-BMI1NOTBM-NEXT: xorl %ecx, %ecx ; X86-BMI1NOTBM-NEXT: testb $32, %al -; X86-BMI1NOTBM-NEXT: jne .LBB33_4 +; X86-BMI1NOTBM-NEXT: jne .LBB34_4 ; X86-BMI1NOTBM-NEXT: # %bb.3: ; X86-BMI1NOTBM-NEXT: movl %esi, %ecx -; X86-BMI1NOTBM-NEXT: .LBB33_4: +; X86-BMI1NOTBM-NEXT: .LBB34_4: ; X86-BMI1NOTBM-NEXT: andnl %edx, %ecx, %eax ; X86-BMI1NOTBM-NEXT: popl %esi ; X86-BMI1NOTBM-NEXT: popl %edi @@ -3853,17 +3986,17 @@ define i32 @bextr64_32_b3(i64 %val, i64 %numskipbits, i8 %numlowbits) nounwind { ; X86-BMI1BMI2-NEXT: movl {{[0-9]+}}(%esp), %esi ; X86-BMI1BMI2-NEXT: shrdl %cl, %esi, %edx ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB33_2 +; X86-BMI1BMI2-NEXT: je .LBB34_2 ; X86-BMI1BMI2-NEXT: # %bb.1: ; X86-BMI1BMI2-NEXT: shrxl %ecx, %esi, %edx -; X86-BMI1BMI2-NEXT: .LBB33_2: +; X86-BMI1BMI2-NEXT: .LBB34_2: ; X86-BMI1BMI2-NEXT: xorl %ecx, %ecx ; X86-BMI1BMI2-NEXT: testb $32, %al -; X86-BMI1BMI2-NEXT: jne .LBB33_4 +; X86-BMI1BMI2-NEXT: jne .LBB34_4 ; X86-BMI1BMI2-NEXT: # %bb.3: ; X86-BMI1BMI2-NEXT: movl $-1, %ecx ; X86-BMI1BMI2-NEXT: shlxl %eax, %ecx, %ecx -; X86-BMI1BMI2-NEXT: .LBB33_4: +; X86-BMI1BMI2-NEXT: .LBB34_4: ; X86-BMI1BMI2-NEXT: andnl %edx, %ecx, %eax ; X86-BMI1BMI2-NEXT: popl %esi ; X86-BMI1BMI2-NEXT: retl @@ -4776,11 +4909,11 @@ define i64 @bextr64_c0(i64 %val, i64 %numskipbits, i64 %numlowbits) nounwind { ; X86-NOBMI-NEXT: shrl %cl, %edi ; X86-NOBMI-NEXT: shrdl %cl, %eax, %esi ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: je .LBB40_2 +; X86-NOBMI-NEXT: je .LBB41_2 ; X86-NOBMI-NEXT: # %bb.1: ; X86-NOBMI-NEXT: movl %edi, %esi ; X86-NOBMI-NEXT: xorl %edi, %edi -; X86-NOBMI-NEXT: .LBB40_2: +; X86-NOBMI-NEXT: .LBB41_2: ; X86-NOBMI-NEXT: movb $64, %cl ; X86-NOBMI-NEXT: subb {{[0-9]+}}(%esp), %cl ; X86-NOBMI-NEXT: movl $-1, %ebp @@ -4788,11 +4921,11 @@ define i64 @bextr64_c0(i64 %val, i64 %numskipbits, i64 %numlowbits) nounwind { ; X86-NOBMI-NEXT: shrl %cl, %ebx ; X86-NOBMI-NEXT: shrdl %cl, %ebp, %ebp ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: je .LBB40_4 +; X86-NOBMI-NEXT: je .LBB41_4 ; X86-NOBMI-NEXT: # %bb.3: ; X86-NOBMI-NEXT: movl %ebx, %ebp ; X86-NOBMI-NEXT: xorl %ebx, %ebx -; X86-NOBMI-NEXT: .LBB40_4: +; X86-NOBMI-NEXT: .LBB41_4: ; X86-NOBMI-NEXT: subl $8, %esp ; X86-NOBMI-NEXT: pushl %ebx ; X86-NOBMI-NEXT: pushl %ebp @@ -4823,11 +4956,11 @@ define i64 @bextr64_c0(i64 %val, i64 %numskipbits, i64 %numlowbits) nounwind { ; X86-BMI1NOTBM-NEXT: shrl %cl, %edi ; X86-BMI1NOTBM-NEXT: shrdl %cl, %eax, %esi ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: je .LBB40_2 +; X86-BMI1NOTBM-NEXT: je .LBB41_2 ; X86-BMI1NOTBM-NEXT: # %bb.1: ; X86-BMI1NOTBM-NEXT: movl %edi, %esi ; X86-BMI1NOTBM-NEXT: xorl %edi, %edi -; X86-BMI1NOTBM-NEXT: .LBB40_2: +; X86-BMI1NOTBM-NEXT: .LBB41_2: ; X86-BMI1NOTBM-NEXT: movb $64, %cl ; X86-BMI1NOTBM-NEXT: subb {{[0-9]+}}(%esp), %cl ; X86-BMI1NOTBM-NEXT: movl $-1, %ebp @@ -4835,11 +4968,11 @@ define i64 @bextr64_c0(i64 %val, i64 %numskipbits, i64 %numlowbits) nounwind { ; X86-BMI1NOTBM-NEXT: shrl %cl, %ebx ; X86-BMI1NOTBM-NEXT: shrdl %cl, %ebp, %ebp ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: je .LBB40_4 +; X86-BMI1NOTBM-NEXT: je .LBB41_4 ; X86-BMI1NOTBM-NEXT: # %bb.3: ; X86-BMI1NOTBM-NEXT: movl %ebx, %ebp ; X86-BMI1NOTBM-NEXT: xorl %ebx, %ebx -; X86-BMI1NOTBM-NEXT: .LBB40_4: +; X86-BMI1NOTBM-NEXT: .LBB41_4: ; X86-BMI1NOTBM-NEXT: subl $8, %esp ; X86-BMI1NOTBM-NEXT: pushl %ebx ; X86-BMI1NOTBM-NEXT: pushl %ebp @@ -4869,22 +5002,22 @@ define i64 @bextr64_c0(i64 %val, i64 %numskipbits, i64 %numlowbits) nounwind { ; X86-BMI1BMI2-NEXT: shrdl %cl, %eax, %esi ; X86-BMI1BMI2-NEXT: shrxl %ecx, %eax, %edi ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB40_2 +; X86-BMI1BMI2-NEXT: je .LBB41_2 ; X86-BMI1BMI2-NEXT: # %bb.1: ; X86-BMI1BMI2-NEXT: movl %edi, %esi ; X86-BMI1BMI2-NEXT: xorl %edi, %edi -; X86-BMI1BMI2-NEXT: .LBB40_2: +; X86-BMI1BMI2-NEXT: .LBB41_2: ; X86-BMI1BMI2-NEXT: movb $64, %cl ; X86-BMI1BMI2-NEXT: subb {{[0-9]+}}(%esp), %cl ; X86-BMI1BMI2-NEXT: movl $-1, %ebx ; X86-BMI1BMI2-NEXT: shrxl %ecx, %ebx, %ebp ; X86-BMI1BMI2-NEXT: shrdl %cl, %ebx, %ebx ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB40_4 +; X86-BMI1BMI2-NEXT: je .LBB41_4 ; X86-BMI1BMI2-NEXT: # %bb.3: ; X86-BMI1BMI2-NEXT: movl %ebp, %ebx ; X86-BMI1BMI2-NEXT: xorl %ebp, %ebp -; X86-BMI1BMI2-NEXT: .LBB40_4: +; X86-BMI1BMI2-NEXT: .LBB41_4: ; X86-BMI1BMI2-NEXT: subl $8, %esp ; X86-BMI1BMI2-NEXT: pushl %ebp ; X86-BMI1BMI2-NEXT: pushl %ebx @@ -4985,11 +5118,11 @@ define i64 @bextr64_c1_indexzext(i64 %val, i8 %numskipbits, i8 %numlowbits) noun ; X86-NOBMI-NEXT: shrl %cl, %edi ; X86-NOBMI-NEXT: shrdl %cl, %eax, %esi ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: je .LBB41_2 +; X86-NOBMI-NEXT: je .LBB42_2 ; X86-NOBMI-NEXT: # %bb.1: ; X86-NOBMI-NEXT: movl %edi, %esi ; X86-NOBMI-NEXT: xorl %edi, %edi -; X86-NOBMI-NEXT: .LBB41_2: +; X86-NOBMI-NEXT: .LBB42_2: ; X86-NOBMI-NEXT: movb $64, %cl ; X86-NOBMI-NEXT: subb {{[0-9]+}}(%esp), %cl ; X86-NOBMI-NEXT: movl $-1, %ebp @@ -4997,11 +5130,11 @@ define i64 @bextr64_c1_indexzext(i64 %val, i8 %numskipbits, i8 %numlowbits) noun ; X86-NOBMI-NEXT: shrl %cl, %ebx ; X86-NOBMI-NEXT: shrdl %cl, %ebp, %ebp ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: je .LBB41_4 +; X86-NOBMI-NEXT: je .LBB42_4 ; X86-NOBMI-NEXT: # %bb.3: ; X86-NOBMI-NEXT: movl %ebx, %ebp ; X86-NOBMI-NEXT: xorl %ebx, %ebx -; X86-NOBMI-NEXT: .LBB41_4: +; X86-NOBMI-NEXT: .LBB42_4: ; X86-NOBMI-NEXT: subl $8, %esp ; X86-NOBMI-NEXT: pushl %ebx ; X86-NOBMI-NEXT: pushl %ebp @@ -5032,11 +5165,11 @@ define i64 @bextr64_c1_indexzext(i64 %val, i8 %numskipbits, i8 %numlowbits) noun ; X86-BMI1NOTBM-NEXT: shrl %cl, %edi ; X86-BMI1NOTBM-NEXT: shrdl %cl, %eax, %esi ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: je .LBB41_2 +; X86-BMI1NOTBM-NEXT: je .LBB42_2 ; X86-BMI1NOTBM-NEXT: # %bb.1: ; X86-BMI1NOTBM-NEXT: movl %edi, %esi ; X86-BMI1NOTBM-NEXT: xorl %edi, %edi -; X86-BMI1NOTBM-NEXT: .LBB41_2: +; X86-BMI1NOTBM-NEXT: .LBB42_2: ; X86-BMI1NOTBM-NEXT: movb $64, %cl ; X86-BMI1NOTBM-NEXT: subb {{[0-9]+}}(%esp), %cl ; X86-BMI1NOTBM-NEXT: movl $-1, %ebp @@ -5044,11 +5177,11 @@ define i64 @bextr64_c1_indexzext(i64 %val, i8 %numskipbits, i8 %numlowbits) noun ; X86-BMI1NOTBM-NEXT: shrl %cl, %ebx ; X86-BMI1NOTBM-NEXT: shrdl %cl, %ebp, %ebp ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: je .LBB41_4 +; X86-BMI1NOTBM-NEXT: je .LBB42_4 ; X86-BMI1NOTBM-NEXT: # %bb.3: ; X86-BMI1NOTBM-NEXT: movl %ebx, %ebp ; X86-BMI1NOTBM-NEXT: xorl %ebx, %ebx -; X86-BMI1NOTBM-NEXT: .LBB41_4: +; X86-BMI1NOTBM-NEXT: .LBB42_4: ; X86-BMI1NOTBM-NEXT: subl $8, %esp ; X86-BMI1NOTBM-NEXT: pushl %ebx ; X86-BMI1NOTBM-NEXT: pushl %ebp @@ -5078,22 +5211,22 @@ define i64 @bextr64_c1_indexzext(i64 %val, i8 %numskipbits, i8 %numlowbits) noun ; X86-BMI1BMI2-NEXT: shrdl %cl, %eax, %esi ; X86-BMI1BMI2-NEXT: shrxl %ecx, %eax, %edi ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB41_2 +; X86-BMI1BMI2-NEXT: je .LBB42_2 ; X86-BMI1BMI2-NEXT: # %bb.1: ; X86-BMI1BMI2-NEXT: movl %edi, %esi ; X86-BMI1BMI2-NEXT: xorl %edi, %edi -; X86-BMI1BMI2-NEXT: .LBB41_2: +; X86-BMI1BMI2-NEXT: .LBB42_2: ; X86-BMI1BMI2-NEXT: movb $64, %cl ; X86-BMI1BMI2-NEXT: subb {{[0-9]+}}(%esp), %cl ; X86-BMI1BMI2-NEXT: movl $-1, %ebx ; X86-BMI1BMI2-NEXT: shrxl %ecx, %ebx, %ebp ; X86-BMI1BMI2-NEXT: shrdl %cl, %ebx, %ebx ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB41_4 +; X86-BMI1BMI2-NEXT: je .LBB42_4 ; X86-BMI1BMI2-NEXT: # %bb.3: ; X86-BMI1BMI2-NEXT: movl %ebp, %ebx ; X86-BMI1BMI2-NEXT: xorl %ebp, %ebp -; X86-BMI1BMI2-NEXT: .LBB41_4: +; X86-BMI1BMI2-NEXT: .LBB42_4: ; X86-BMI1BMI2-NEXT: subl $8, %esp ; X86-BMI1BMI2-NEXT: pushl %ebp ; X86-BMI1BMI2-NEXT: pushl %ebx @@ -5198,11 +5331,11 @@ define i64 @bextr64_c2_load(i64* %w, i64 %numskipbits, i64 %numlowbits) nounwind ; X86-NOBMI-NEXT: shrl %cl, %edi ; X86-NOBMI-NEXT: shrdl %cl, %eax, %esi ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: je .LBB42_2 +; X86-NOBMI-NEXT: je .LBB43_2 ; X86-NOBMI-NEXT: # %bb.1: ; X86-NOBMI-NEXT: movl %edi, %esi ; X86-NOBMI-NEXT: xorl %edi, %edi -; X86-NOBMI-NEXT: .LBB42_2: +; X86-NOBMI-NEXT: .LBB43_2: ; X86-NOBMI-NEXT: movb $64, %cl ; X86-NOBMI-NEXT: subb {{[0-9]+}}(%esp), %cl ; X86-NOBMI-NEXT: movl $-1, %ebp @@ -5210,11 +5343,11 @@ define i64 @bextr64_c2_load(i64* %w, i64 %numskipbits, i64 %numlowbits) nounwind ; X86-NOBMI-NEXT: shrl %cl, %ebx ; X86-NOBMI-NEXT: shrdl %cl, %ebp, %ebp ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: je .LBB42_4 +; X86-NOBMI-NEXT: je .LBB43_4 ; X86-NOBMI-NEXT: # %bb.3: ; X86-NOBMI-NEXT: movl %ebx, %ebp ; X86-NOBMI-NEXT: xorl %ebx, %ebx -; X86-NOBMI-NEXT: .LBB42_4: +; X86-NOBMI-NEXT: .LBB43_4: ; X86-NOBMI-NEXT: subl $8, %esp ; X86-NOBMI-NEXT: pushl %ebx ; X86-NOBMI-NEXT: pushl %ebp @@ -5246,11 +5379,11 @@ define i64 @bextr64_c2_load(i64* %w, i64 %numskipbits, i64 %numlowbits) nounwind ; X86-BMI1NOTBM-NEXT: shrl %cl, %edi ; X86-BMI1NOTBM-NEXT: shrdl %cl, %eax, %esi ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: je .LBB42_2 +; X86-BMI1NOTBM-NEXT: je .LBB43_2 ; X86-BMI1NOTBM-NEXT: # %bb.1: ; X86-BMI1NOTBM-NEXT: movl %edi, %esi ; X86-BMI1NOTBM-NEXT: xorl %edi, %edi -; X86-BMI1NOTBM-NEXT: .LBB42_2: +; X86-BMI1NOTBM-NEXT: .LBB43_2: ; X86-BMI1NOTBM-NEXT: movb $64, %cl ; X86-BMI1NOTBM-NEXT: subb {{[0-9]+}}(%esp), %cl ; X86-BMI1NOTBM-NEXT: movl $-1, %ebp @@ -5258,11 +5391,11 @@ define i64 @bextr64_c2_load(i64* %w, i64 %numskipbits, i64 %numlowbits) nounwind ; X86-BMI1NOTBM-NEXT: shrl %cl, %ebx ; X86-BMI1NOTBM-NEXT: shrdl %cl, %ebp, %ebp ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: je .LBB42_4 +; X86-BMI1NOTBM-NEXT: je .LBB43_4 ; X86-BMI1NOTBM-NEXT: # %bb.3: ; X86-BMI1NOTBM-NEXT: movl %ebx, %ebp ; X86-BMI1NOTBM-NEXT: xorl %ebx, %ebx -; X86-BMI1NOTBM-NEXT: .LBB42_4: +; X86-BMI1NOTBM-NEXT: .LBB43_4: ; X86-BMI1NOTBM-NEXT: subl $8, %esp ; X86-BMI1NOTBM-NEXT: pushl %ebx ; X86-BMI1NOTBM-NEXT: pushl %ebp @@ -5293,22 +5426,22 @@ define i64 @bextr64_c2_load(i64* %w, i64 %numskipbits, i64 %numlowbits) nounwind ; X86-BMI1BMI2-NEXT: shrxl %ecx, %eax, %edi ; X86-BMI1BMI2-NEXT: shrdl %cl, %eax, %esi ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB42_2 +; X86-BMI1BMI2-NEXT: je .LBB43_2 ; X86-BMI1BMI2-NEXT: # %bb.1: ; X86-BMI1BMI2-NEXT: movl %edi, %esi ; X86-BMI1BMI2-NEXT: xorl %edi, %edi -; X86-BMI1BMI2-NEXT: .LBB42_2: +; X86-BMI1BMI2-NEXT: .LBB43_2: ; X86-BMI1BMI2-NEXT: movb $64, %cl ; X86-BMI1BMI2-NEXT: subb {{[0-9]+}}(%esp), %cl ; X86-BMI1BMI2-NEXT: movl $-1, %ebx ; X86-BMI1BMI2-NEXT: shrxl %ecx, %ebx, %ebp ; X86-BMI1BMI2-NEXT: shrdl %cl, %ebx, %ebx ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB42_4 +; X86-BMI1BMI2-NEXT: je .LBB43_4 ; X86-BMI1BMI2-NEXT: # %bb.3: ; X86-BMI1BMI2-NEXT: movl %ebp, %ebx ; X86-BMI1BMI2-NEXT: xorl %ebp, %ebp -; X86-BMI1BMI2-NEXT: .LBB42_4: +; X86-BMI1BMI2-NEXT: .LBB43_4: ; X86-BMI1BMI2-NEXT: subl $8, %esp ; X86-BMI1BMI2-NEXT: pushl %ebp ; X86-BMI1BMI2-NEXT: pushl %ebx @@ -5411,11 +5544,11 @@ define i64 @bextr64_c3_load_indexzext(i64* %w, i8 %numskipbits, i8 %numlowbits) ; X86-NOBMI-NEXT: shrl %cl, %edi ; X86-NOBMI-NEXT: shrdl %cl, %eax, %esi ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: je .LBB43_2 +; X86-NOBMI-NEXT: je .LBB44_2 ; X86-NOBMI-NEXT: # %bb.1: ; X86-NOBMI-NEXT: movl %edi, %esi ; X86-NOBMI-NEXT: xorl %edi, %edi -; X86-NOBMI-NEXT: .LBB43_2: +; X86-NOBMI-NEXT: .LBB44_2: ; X86-NOBMI-NEXT: movb $64, %cl ; X86-NOBMI-NEXT: subb {{[0-9]+}}(%esp), %cl ; X86-NOBMI-NEXT: movl $-1, %ebp @@ -5423,11 +5556,11 @@ define i64 @bextr64_c3_load_indexzext(i64* %w, i8 %numskipbits, i8 %numlowbits) ; X86-NOBMI-NEXT: shrl %cl, %ebx ; X86-NOBMI-NEXT: shrdl %cl, %ebp, %ebp ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: je .LBB43_4 +; X86-NOBMI-NEXT: je .LBB44_4 ; X86-NOBMI-NEXT: # %bb.3: ; X86-NOBMI-NEXT: movl %ebx, %ebp ; X86-NOBMI-NEXT: xorl %ebx, %ebx -; X86-NOBMI-NEXT: .LBB43_4: +; X86-NOBMI-NEXT: .LBB44_4: ; X86-NOBMI-NEXT: subl $8, %esp ; X86-NOBMI-NEXT: pushl %ebx ; X86-NOBMI-NEXT: pushl %ebp @@ -5459,11 +5592,11 @@ define i64 @bextr64_c3_load_indexzext(i64* %w, i8 %numskipbits, i8 %numlowbits) ; X86-BMI1NOTBM-NEXT: shrl %cl, %edi ; X86-BMI1NOTBM-NEXT: shrdl %cl, %eax, %esi ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: je .LBB43_2 +; X86-BMI1NOTBM-NEXT: je .LBB44_2 ; X86-BMI1NOTBM-NEXT: # %bb.1: ; X86-BMI1NOTBM-NEXT: movl %edi, %esi ; X86-BMI1NOTBM-NEXT: xorl %edi, %edi -; X86-BMI1NOTBM-NEXT: .LBB43_2: +; X86-BMI1NOTBM-NEXT: .LBB44_2: ; X86-BMI1NOTBM-NEXT: movb $64, %cl ; X86-BMI1NOTBM-NEXT: subb {{[0-9]+}}(%esp), %cl ; X86-BMI1NOTBM-NEXT: movl $-1, %ebp @@ -5471,11 +5604,11 @@ define i64 @bextr64_c3_load_indexzext(i64* %w, i8 %numskipbits, i8 %numlowbits) ; X86-BMI1NOTBM-NEXT: shrl %cl, %ebx ; X86-BMI1NOTBM-NEXT: shrdl %cl, %ebp, %ebp ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: je .LBB43_4 +; X86-BMI1NOTBM-NEXT: je .LBB44_4 ; X86-BMI1NOTBM-NEXT: # %bb.3: ; X86-BMI1NOTBM-NEXT: movl %ebx, %ebp ; X86-BMI1NOTBM-NEXT: xorl %ebx, %ebx -; X86-BMI1NOTBM-NEXT: .LBB43_4: +; X86-BMI1NOTBM-NEXT: .LBB44_4: ; X86-BMI1NOTBM-NEXT: subl $8, %esp ; X86-BMI1NOTBM-NEXT: pushl %ebx ; X86-BMI1NOTBM-NEXT: pushl %ebp @@ -5506,22 +5639,22 @@ define i64 @bextr64_c3_load_indexzext(i64* %w, i8 %numskipbits, i8 %numlowbits) ; X86-BMI1BMI2-NEXT: shrxl %ecx, %eax, %edi ; X86-BMI1BMI2-NEXT: shrdl %cl, %eax, %esi ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB43_2 +; X86-BMI1BMI2-NEXT: je .LBB44_2 ; X86-BMI1BMI2-NEXT: # %bb.1: ; X86-BMI1BMI2-NEXT: movl %edi, %esi ; X86-BMI1BMI2-NEXT: xorl %edi, %edi -; X86-BMI1BMI2-NEXT: .LBB43_2: +; X86-BMI1BMI2-NEXT: .LBB44_2: ; X86-BMI1BMI2-NEXT: movb $64, %cl ; X86-BMI1BMI2-NEXT: subb {{[0-9]+}}(%esp), %cl ; X86-BMI1BMI2-NEXT: movl $-1, %ebx ; X86-BMI1BMI2-NEXT: shrxl %ecx, %ebx, %ebp ; X86-BMI1BMI2-NEXT: shrdl %cl, %ebx, %ebx ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB43_4 +; X86-BMI1BMI2-NEXT: je .LBB44_4 ; X86-BMI1BMI2-NEXT: # %bb.3: ; X86-BMI1BMI2-NEXT: movl %ebp, %ebx ; X86-BMI1BMI2-NEXT: xorl %ebp, %ebp -; X86-BMI1BMI2-NEXT: .LBB43_4: +; X86-BMI1BMI2-NEXT: .LBB44_4: ; X86-BMI1BMI2-NEXT: subl $8, %esp ; X86-BMI1BMI2-NEXT: pushl %ebp ; X86-BMI1BMI2-NEXT: pushl %ebx @@ -5626,11 +5759,11 @@ define i64 @bextr64_c4_commutative(i64 %val, i64 %numskipbits, i64 %numlowbits) ; X86-NOBMI-NEXT: shrl %cl, %edi ; X86-NOBMI-NEXT: shrdl %cl, %eax, %esi ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: je .LBB44_2 +; X86-NOBMI-NEXT: je .LBB45_2 ; X86-NOBMI-NEXT: # %bb.1: ; X86-NOBMI-NEXT: movl %edi, %esi ; X86-NOBMI-NEXT: xorl %edi, %edi -; X86-NOBMI-NEXT: .LBB44_2: +; X86-NOBMI-NEXT: .LBB45_2: ; X86-NOBMI-NEXT: movb $64, %cl ; X86-NOBMI-NEXT: subb {{[0-9]+}}(%esp), %cl ; X86-NOBMI-NEXT: movl $-1, %ebp @@ -5638,11 +5771,11 @@ define i64 @bextr64_c4_commutative(i64 %val, i64 %numskipbits, i64 %numlowbits) ; X86-NOBMI-NEXT: shrl %cl, %ebx ; X86-NOBMI-NEXT: shrdl %cl, %ebp, %ebp ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: je .LBB44_4 +; X86-NOBMI-NEXT: je .LBB45_4 ; X86-NOBMI-NEXT: # %bb.3: ; X86-NOBMI-NEXT: movl %ebx, %ebp ; X86-NOBMI-NEXT: xorl %ebx, %ebx -; X86-NOBMI-NEXT: .LBB44_4: +; X86-NOBMI-NEXT: .LBB45_4: ; X86-NOBMI-NEXT: subl $8, %esp ; X86-NOBMI-NEXT: pushl %ebx ; X86-NOBMI-NEXT: pushl %ebp @@ -5673,11 +5806,11 @@ define i64 @bextr64_c4_commutative(i64 %val, i64 %numskipbits, i64 %numlowbits) ; X86-BMI1NOTBM-NEXT: shrl %cl, %edi ; X86-BMI1NOTBM-NEXT: shrdl %cl, %eax, %esi ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: je .LBB44_2 +; X86-BMI1NOTBM-NEXT: je .LBB45_2 ; X86-BMI1NOTBM-NEXT: # %bb.1: ; X86-BMI1NOTBM-NEXT: movl %edi, %esi ; X86-BMI1NOTBM-NEXT: xorl %edi, %edi -; X86-BMI1NOTBM-NEXT: .LBB44_2: +; X86-BMI1NOTBM-NEXT: .LBB45_2: ; X86-BMI1NOTBM-NEXT: movb $64, %cl ; X86-BMI1NOTBM-NEXT: subb {{[0-9]+}}(%esp), %cl ; X86-BMI1NOTBM-NEXT: movl $-1, %ebp @@ -5685,11 +5818,11 @@ define i64 @bextr64_c4_commutative(i64 %val, i64 %numskipbits, i64 %numlowbits) ; X86-BMI1NOTBM-NEXT: shrl %cl, %ebx ; X86-BMI1NOTBM-NEXT: shrdl %cl, %ebp, %ebp ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: je .LBB44_4 +; X86-BMI1NOTBM-NEXT: je .LBB45_4 ; X86-BMI1NOTBM-NEXT: # %bb.3: ; X86-BMI1NOTBM-NEXT: movl %ebx, %ebp ; X86-BMI1NOTBM-NEXT: xorl %ebx, %ebx -; X86-BMI1NOTBM-NEXT: .LBB44_4: +; X86-BMI1NOTBM-NEXT: .LBB45_4: ; X86-BMI1NOTBM-NEXT: subl $8, %esp ; X86-BMI1NOTBM-NEXT: pushl %ebx ; X86-BMI1NOTBM-NEXT: pushl %ebp @@ -5719,22 +5852,22 @@ define i64 @bextr64_c4_commutative(i64 %val, i64 %numskipbits, i64 %numlowbits) ; X86-BMI1BMI2-NEXT: shrdl %cl, %eax, %esi ; X86-BMI1BMI2-NEXT: shrxl %ecx, %eax, %edi ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB44_2 +; X86-BMI1BMI2-NEXT: je .LBB45_2 ; X86-BMI1BMI2-NEXT: # %bb.1: ; X86-BMI1BMI2-NEXT: movl %edi, %esi ; X86-BMI1BMI2-NEXT: xorl %edi, %edi -; X86-BMI1BMI2-NEXT: .LBB44_2: +; X86-BMI1BMI2-NEXT: .LBB45_2: ; X86-BMI1BMI2-NEXT: movb $64, %cl ; X86-BMI1BMI2-NEXT: subb {{[0-9]+}}(%esp), %cl ; X86-BMI1BMI2-NEXT: movl $-1, %ebx ; X86-BMI1BMI2-NEXT: shrxl %ecx, %ebx, %ebp ; X86-BMI1BMI2-NEXT: shrdl %cl, %ebx, %ebx ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB44_4 +; X86-BMI1BMI2-NEXT: je .LBB45_4 ; X86-BMI1BMI2-NEXT: # %bb.3: ; X86-BMI1BMI2-NEXT: movl %ebp, %ebx ; X86-BMI1BMI2-NEXT: xorl %ebp, %ebp -; X86-BMI1BMI2-NEXT: .LBB44_4: +; X86-BMI1BMI2-NEXT: .LBB45_4: ; X86-BMI1BMI2-NEXT: subl $8, %esp ; X86-BMI1BMI2-NEXT: pushl %ebp ; X86-BMI1BMI2-NEXT: pushl %ebx @@ -5835,11 +5968,11 @@ define i64 @bextr64_c5_skipextrauses(i64 %val, i64 %numskipbits, i64 %numlowbits ; X86-NOBMI-NEXT: shrl %cl, %edi ; X86-NOBMI-NEXT: shrdl %cl, %eax, %esi ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: je .LBB45_2 +; X86-NOBMI-NEXT: je .LBB46_2 ; X86-NOBMI-NEXT: # %bb.1: ; X86-NOBMI-NEXT: movl %edi, %esi ; X86-NOBMI-NEXT: xorl %edi, %edi -; X86-NOBMI-NEXT: .LBB45_2: +; X86-NOBMI-NEXT: .LBB46_2: ; X86-NOBMI-NEXT: movb $64, %cl ; X86-NOBMI-NEXT: subb {{[0-9]+}}(%esp), %cl ; X86-NOBMI-NEXT: movl $-1, %ebx @@ -5847,11 +5980,11 @@ define i64 @bextr64_c5_skipextrauses(i64 %val, i64 %numskipbits, i64 %numlowbits ; X86-NOBMI-NEXT: shrl %cl, %ebp ; X86-NOBMI-NEXT: shrdl %cl, %ebx, %ebx ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: je .LBB45_4 +; X86-NOBMI-NEXT: je .LBB46_4 ; X86-NOBMI-NEXT: # %bb.3: ; X86-NOBMI-NEXT: movl %ebp, %ebx ; X86-NOBMI-NEXT: xorl %ebp, %ebp -; X86-NOBMI-NEXT: .LBB45_4: +; X86-NOBMI-NEXT: .LBB46_4: ; X86-NOBMI-NEXT: subl $8, %esp ; X86-NOBMI-NEXT: pushl %ebp ; X86-NOBMI-NEXT: pushl %ebx @@ -5887,11 +6020,11 @@ define i64 @bextr64_c5_skipextrauses(i64 %val, i64 %numskipbits, i64 %numlowbits ; X86-BMI1NOTBM-NEXT: shrl %cl, %edi ; X86-BMI1NOTBM-NEXT: shrdl %cl, %eax, %esi ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: je .LBB45_2 +; X86-BMI1NOTBM-NEXT: je .LBB46_2 ; X86-BMI1NOTBM-NEXT: # %bb.1: ; X86-BMI1NOTBM-NEXT: movl %edi, %esi ; X86-BMI1NOTBM-NEXT: xorl %edi, %edi -; X86-BMI1NOTBM-NEXT: .LBB45_2: +; X86-BMI1NOTBM-NEXT: .LBB46_2: ; X86-BMI1NOTBM-NEXT: movb $64, %cl ; X86-BMI1NOTBM-NEXT: subb {{[0-9]+}}(%esp), %cl ; X86-BMI1NOTBM-NEXT: movl $-1, %ebx @@ -5899,11 +6032,11 @@ define i64 @bextr64_c5_skipextrauses(i64 %val, i64 %numskipbits, i64 %numlowbits ; X86-BMI1NOTBM-NEXT: shrl %cl, %ebp ; X86-BMI1NOTBM-NEXT: shrdl %cl, %ebx, %ebx ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: je .LBB45_4 +; X86-BMI1NOTBM-NEXT: je .LBB46_4 ; X86-BMI1NOTBM-NEXT: # %bb.3: ; X86-BMI1NOTBM-NEXT: movl %ebp, %ebx ; X86-BMI1NOTBM-NEXT: xorl %ebp, %ebp -; X86-BMI1NOTBM-NEXT: .LBB45_4: +; X86-BMI1NOTBM-NEXT: .LBB46_4: ; X86-BMI1NOTBM-NEXT: subl $8, %esp ; X86-BMI1NOTBM-NEXT: pushl %ebp ; X86-BMI1NOTBM-NEXT: pushl %ebx @@ -5938,22 +6071,22 @@ define i64 @bextr64_c5_skipextrauses(i64 %val, i64 %numskipbits, i64 %numlowbits ; X86-BMI1BMI2-NEXT: shrdl %cl, %eax, %esi ; X86-BMI1BMI2-NEXT: shrxl %ecx, %eax, %edi ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB45_2 +; X86-BMI1BMI2-NEXT: je .LBB46_2 ; X86-BMI1BMI2-NEXT: # %bb.1: ; X86-BMI1BMI2-NEXT: movl %edi, %esi ; X86-BMI1BMI2-NEXT: xorl %edi, %edi -; X86-BMI1BMI2-NEXT: .LBB45_2: +; X86-BMI1BMI2-NEXT: .LBB46_2: ; X86-BMI1BMI2-NEXT: movb $64, %cl ; X86-BMI1BMI2-NEXT: subb {{[0-9]+}}(%esp), %cl ; X86-BMI1BMI2-NEXT: movl $-1, %ebp ; X86-BMI1BMI2-NEXT: shrxl %ecx, %ebp, %ebx ; X86-BMI1BMI2-NEXT: shrdl %cl, %ebp, %ebp ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB45_4 +; X86-BMI1BMI2-NEXT: je .LBB46_4 ; X86-BMI1BMI2-NEXT: # %bb.3: ; X86-BMI1BMI2-NEXT: movl %ebx, %ebp ; X86-BMI1BMI2-NEXT: xorl %ebx, %ebx -; X86-BMI1BMI2-NEXT: .LBB45_4: +; X86-BMI1BMI2-NEXT: .LBB46_4: ; X86-BMI1BMI2-NEXT: subl $8, %esp ; X86-BMI1BMI2-NEXT: pushl %ebx ; X86-BMI1BMI2-NEXT: pushl %ebp @@ -6067,10 +6200,10 @@ define i32 @bextr64_32_c0(i64 %val, i64 %numskipbits, i64 %numlowbits) nounwind ; X86-NOBMI-NEXT: shrl %cl, %edx ; X86-NOBMI-NEXT: shrdl %cl, %esi, %eax ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: jne .LBB46_2 +; X86-NOBMI-NEXT: jne .LBB47_2 ; X86-NOBMI-NEXT: # %bb.1: ; X86-NOBMI-NEXT: movl %eax, %edx -; X86-NOBMI-NEXT: .LBB46_2: +; X86-NOBMI-NEXT: .LBB47_2: ; X86-NOBMI-NEXT: movb $64, %cl ; X86-NOBMI-NEXT: subb {{[0-9]+}}(%esp), %cl ; X86-NOBMI-NEXT: movl $-1, %esi @@ -6078,10 +6211,10 @@ define i32 @bextr64_32_c0(i64 %val, i64 %numskipbits, i64 %numlowbits) nounwind ; X86-NOBMI-NEXT: shrl %cl, %eax ; X86-NOBMI-NEXT: shrdl %cl, %esi, %esi ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: jne .LBB46_4 +; X86-NOBMI-NEXT: jne .LBB47_4 ; X86-NOBMI-NEXT: # %bb.3: ; X86-NOBMI-NEXT: movl %esi, %eax -; X86-NOBMI-NEXT: .LBB46_4: +; X86-NOBMI-NEXT: .LBB47_4: ; X86-NOBMI-NEXT: andl %edx, %eax ; X86-NOBMI-NEXT: popl %esi ; X86-NOBMI-NEXT: retl @@ -6096,10 +6229,10 @@ define i32 @bextr64_32_c0(i64 %val, i64 %numskipbits, i64 %numlowbits) nounwind ; X86-BMI1NOTBM-NEXT: shrl %cl, %edx ; X86-BMI1NOTBM-NEXT: shrdl %cl, %esi, %eax ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: jne .LBB46_2 +; X86-BMI1NOTBM-NEXT: jne .LBB47_2 ; X86-BMI1NOTBM-NEXT: # %bb.1: ; X86-BMI1NOTBM-NEXT: movl %eax, %edx -; X86-BMI1NOTBM-NEXT: .LBB46_2: +; X86-BMI1NOTBM-NEXT: .LBB47_2: ; X86-BMI1NOTBM-NEXT: movb $64, %cl ; X86-BMI1NOTBM-NEXT: subb {{[0-9]+}}(%esp), %cl ; X86-BMI1NOTBM-NEXT: movl $-1, %esi @@ -6107,10 +6240,10 @@ define i32 @bextr64_32_c0(i64 %val, i64 %numskipbits, i64 %numlowbits) nounwind ; X86-BMI1NOTBM-NEXT: shrl %cl, %eax ; X86-BMI1NOTBM-NEXT: shrdl %cl, %esi, %esi ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: jne .LBB46_4 +; X86-BMI1NOTBM-NEXT: jne .LBB47_4 ; X86-BMI1NOTBM-NEXT: # %bb.3: ; X86-BMI1NOTBM-NEXT: movl %esi, %eax -; X86-BMI1NOTBM-NEXT: .LBB46_4: +; X86-BMI1NOTBM-NEXT: .LBB47_4: ; X86-BMI1NOTBM-NEXT: andl %edx, %eax ; X86-BMI1NOTBM-NEXT: popl %esi ; X86-BMI1NOTBM-NEXT: retl @@ -6123,20 +6256,20 @@ define i32 @bextr64_32_c0(i64 %val, i64 %numskipbits, i64 %numlowbits) nounwind ; X86-BMI1BMI2-NEXT: movl {{[0-9]+}}(%esp), %eax ; X86-BMI1BMI2-NEXT: shrdl %cl, %eax, %edx ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB46_2 +; X86-BMI1BMI2-NEXT: je .LBB47_2 ; X86-BMI1BMI2-NEXT: # %bb.1: ; X86-BMI1BMI2-NEXT: shrxl %ecx, %eax, %edx -; X86-BMI1BMI2-NEXT: .LBB46_2: +; X86-BMI1BMI2-NEXT: .LBB47_2: ; X86-BMI1BMI2-NEXT: movb $64, %cl ; X86-BMI1BMI2-NEXT: subb {{[0-9]+}}(%esp), %cl ; X86-BMI1BMI2-NEXT: movl $-1, %esi ; X86-BMI1BMI2-NEXT: movl $-1, %eax ; X86-BMI1BMI2-NEXT: shrdl %cl, %eax, %eax ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB46_4 +; X86-BMI1BMI2-NEXT: je .LBB47_4 ; X86-BMI1BMI2-NEXT: # %bb.3: ; X86-BMI1BMI2-NEXT: shrxl %ecx, %esi, %eax -; X86-BMI1BMI2-NEXT: .LBB46_4: +; X86-BMI1BMI2-NEXT: .LBB47_4: ; X86-BMI1BMI2-NEXT: andl %edx, %eax ; X86-BMI1BMI2-NEXT: popl %esi ; X86-BMI1BMI2-NEXT: retl @@ -6196,10 +6329,10 @@ define i32 @bextr64_32_c1(i64 %val, i64 %numskipbits, i32 %numlowbits) nounwind ; X86-NOBMI-NEXT: shrl %cl, %eax ; X86-NOBMI-NEXT: shrdl %cl, %esi, %edx ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: jne .LBB47_2 +; X86-NOBMI-NEXT: jne .LBB48_2 ; X86-NOBMI-NEXT: # %bb.1: ; X86-NOBMI-NEXT: movl %edx, %eax -; X86-NOBMI-NEXT: .LBB47_2: +; X86-NOBMI-NEXT: .LBB48_2: ; X86-NOBMI-NEXT: xorl %ecx, %ecx ; X86-NOBMI-NEXT: subb {{[0-9]+}}(%esp), %cl ; X86-NOBMI-NEXT: shll %cl, %eax @@ -6220,10 +6353,10 @@ define i32 @bextr64_32_c1(i64 %val, i64 %numskipbits, i32 %numlowbits) nounwind ; X86-BMI1NOTBM-NEXT: shrl %cl, %edx ; X86-BMI1NOTBM-NEXT: shrdl %cl, %edi, %esi ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: jne .LBB47_2 +; X86-BMI1NOTBM-NEXT: jne .LBB48_2 ; X86-BMI1NOTBM-NEXT: # %bb.1: ; X86-BMI1NOTBM-NEXT: movl %esi, %edx -; X86-BMI1NOTBM-NEXT: .LBB47_2: +; X86-BMI1NOTBM-NEXT: .LBB48_2: ; X86-BMI1NOTBM-NEXT: shll $8, %eax ; X86-BMI1NOTBM-NEXT: bextrl %eax, %edx, %eax ; X86-BMI1NOTBM-NEXT: popl %esi @@ -6239,10 +6372,10 @@ define i32 @bextr64_32_c1(i64 %val, i64 %numskipbits, i32 %numlowbits) nounwind ; X86-BMI1BMI2-NEXT: movl {{[0-9]+}}(%esp), %esi ; X86-BMI1BMI2-NEXT: shrdl %cl, %esi, %edx ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB47_2 +; X86-BMI1BMI2-NEXT: je .LBB48_2 ; X86-BMI1BMI2-NEXT: # %bb.1: ; X86-BMI1BMI2-NEXT: shrxl %ecx, %esi, %edx -; X86-BMI1BMI2-NEXT: .LBB47_2: +; X86-BMI1BMI2-NEXT: .LBB48_2: ; X86-BMI1BMI2-NEXT: bzhil %eax, %edx, %eax ; X86-BMI1BMI2-NEXT: popl %esi ; X86-BMI1BMI2-NEXT: retl @@ -6295,10 +6428,10 @@ define i32 @bextr64_32_c2(i64 %val, i64 %numskipbits, i32 %numlowbits) nounwind ; X86-NOBMI-NEXT: shrl %cl, %eax ; X86-NOBMI-NEXT: shrdl %cl, %esi, %edx ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: jne .LBB48_2 +; X86-NOBMI-NEXT: jne .LBB49_2 ; X86-NOBMI-NEXT: # %bb.1: ; X86-NOBMI-NEXT: movl %edx, %eax -; X86-NOBMI-NEXT: .LBB48_2: +; X86-NOBMI-NEXT: .LBB49_2: ; X86-NOBMI-NEXT: xorl %ecx, %ecx ; X86-NOBMI-NEXT: subb {{[0-9]+}}(%esp), %cl ; X86-NOBMI-NEXT: shll %cl, %eax @@ -6319,10 +6452,10 @@ define i32 @bextr64_32_c2(i64 %val, i64 %numskipbits, i32 %numlowbits) nounwind ; X86-BMI1NOTBM-NEXT: shrl %cl, %edx ; X86-BMI1NOTBM-NEXT: shrdl %cl, %edi, %esi ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: jne .LBB48_2 +; X86-BMI1NOTBM-NEXT: jne .LBB49_2 ; X86-BMI1NOTBM-NEXT: # %bb.1: ; X86-BMI1NOTBM-NEXT: movl %esi, %edx -; X86-BMI1NOTBM-NEXT: .LBB48_2: +; X86-BMI1NOTBM-NEXT: .LBB49_2: ; X86-BMI1NOTBM-NEXT: shll $8, %eax ; X86-BMI1NOTBM-NEXT: bextrl %eax, %edx, %eax ; X86-BMI1NOTBM-NEXT: popl %esi @@ -6338,10 +6471,10 @@ define i32 @bextr64_32_c2(i64 %val, i64 %numskipbits, i32 %numlowbits) nounwind ; X86-BMI1BMI2-NEXT: movl {{[0-9]+}}(%esp), %esi ; X86-BMI1BMI2-NEXT: shrdl %cl, %esi, %edx ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB48_2 +; X86-BMI1BMI2-NEXT: je .LBB49_2 ; X86-BMI1BMI2-NEXT: # %bb.1: ; X86-BMI1BMI2-NEXT: shrxl %ecx, %esi, %edx -; X86-BMI1BMI2-NEXT: .LBB48_2: +; X86-BMI1BMI2-NEXT: .LBB49_2: ; X86-BMI1BMI2-NEXT: bzhil %eax, %edx, %eax ; X86-BMI1BMI2-NEXT: popl %esi ; X86-BMI1BMI2-NEXT: retl @@ -6762,36 +6895,36 @@ define i64 @bextr64_d0(i64 %val, i64 %numskipbits, i64 %numlowbits) nounwind { ; X86-NOBMI-NEXT: shrdl %cl, %edx, %edi ; X86-NOBMI-NEXT: xorl %esi, %esi ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: je .LBB54_2 +; X86-NOBMI-NEXT: je .LBB55_2 ; X86-NOBMI-NEXT: # %bb.1: ; X86-NOBMI-NEXT: movl %eax, %edi ; X86-NOBMI-NEXT: xorl %eax, %eax -; X86-NOBMI-NEXT: .LBB54_2: +; X86-NOBMI-NEXT: .LBB55_2: ; X86-NOBMI-NEXT: movb $64, %cl ; X86-NOBMI-NEXT: subb {{[0-9]+}}(%esp), %cl ; X86-NOBMI-NEXT: shldl %cl, %edi, %eax ; X86-NOBMI-NEXT: shll %cl, %edi ; X86-NOBMI-NEXT: testb $32, %cl ; X86-NOBMI-NEXT: movl %edi, %ebx -; X86-NOBMI-NEXT: jne .LBB54_4 +; X86-NOBMI-NEXT: jne .LBB55_4 ; X86-NOBMI-NEXT: # %bb.3: ; X86-NOBMI-NEXT: movl %eax, %ebx -; X86-NOBMI-NEXT: .LBB54_4: +; X86-NOBMI-NEXT: .LBB55_4: ; X86-NOBMI-NEXT: movl %ebx, %eax ; X86-NOBMI-NEXT: shrl %cl, %eax ; X86-NOBMI-NEXT: testb $32, %cl ; X86-NOBMI-NEXT: movl $0, %edx -; X86-NOBMI-NEXT: jne .LBB54_6 +; X86-NOBMI-NEXT: jne .LBB55_6 ; X86-NOBMI-NEXT: # %bb.5: ; X86-NOBMI-NEXT: movl %edi, %esi ; X86-NOBMI-NEXT: movl %eax, %edx -; X86-NOBMI-NEXT: .LBB54_6: +; X86-NOBMI-NEXT: .LBB55_6: ; X86-NOBMI-NEXT: shrdl %cl, %ebx, %esi ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: jne .LBB54_8 +; X86-NOBMI-NEXT: jne .LBB55_8 ; X86-NOBMI-NEXT: # %bb.7: ; X86-NOBMI-NEXT: movl %esi, %eax -; X86-NOBMI-NEXT: .LBB54_8: +; X86-NOBMI-NEXT: .LBB55_8: ; X86-NOBMI-NEXT: popl %esi ; X86-NOBMI-NEXT: popl %edi ; X86-NOBMI-NEXT: popl %ebx @@ -6810,36 +6943,36 @@ define i64 @bextr64_d0(i64 %val, i64 %numskipbits, i64 %numlowbits) nounwind { ; X86-BMI1NOTBM-NEXT: shrdl %cl, %edx, %edi ; X86-BMI1NOTBM-NEXT: xorl %esi, %esi ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: je .LBB54_2 +; X86-BMI1NOTBM-NEXT: je .LBB55_2 ; X86-BMI1NOTBM-NEXT: # %bb.1: ; X86-BMI1NOTBM-NEXT: movl %eax, %edi ; X86-BMI1NOTBM-NEXT: xorl %eax, %eax -; X86-BMI1NOTBM-NEXT: .LBB54_2: +; X86-BMI1NOTBM-NEXT: .LBB55_2: ; X86-BMI1NOTBM-NEXT: movb $64, %cl ; X86-BMI1NOTBM-NEXT: subb {{[0-9]+}}(%esp), %cl ; X86-BMI1NOTBM-NEXT: shldl %cl, %edi, %eax ; X86-BMI1NOTBM-NEXT: shll %cl, %edi ; X86-BMI1NOTBM-NEXT: testb $32, %cl ; X86-BMI1NOTBM-NEXT: movl %edi, %ebx -; X86-BMI1NOTBM-NEXT: jne .LBB54_4 +; X86-BMI1NOTBM-NEXT: jne .LBB55_4 ; X86-BMI1NOTBM-NEXT: # %bb.3: ; X86-BMI1NOTBM-NEXT: movl %eax, %ebx -; X86-BMI1NOTBM-NEXT: .LBB54_4: +; X86-BMI1NOTBM-NEXT: .LBB55_4: ; X86-BMI1NOTBM-NEXT: movl %ebx, %eax ; X86-BMI1NOTBM-NEXT: shrl %cl, %eax ; X86-BMI1NOTBM-NEXT: testb $32, %cl ; X86-BMI1NOTBM-NEXT: movl $0, %edx -; X86-BMI1NOTBM-NEXT: jne .LBB54_6 +; X86-BMI1NOTBM-NEXT: jne .LBB55_6 ; X86-BMI1NOTBM-NEXT: # %bb.5: ; X86-BMI1NOTBM-NEXT: movl %edi, %esi ; X86-BMI1NOTBM-NEXT: movl %eax, %edx -; X86-BMI1NOTBM-NEXT: .LBB54_6: +; X86-BMI1NOTBM-NEXT: .LBB55_6: ; X86-BMI1NOTBM-NEXT: shrdl %cl, %ebx, %esi ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: jne .LBB54_8 +; X86-BMI1NOTBM-NEXT: jne .LBB55_8 ; X86-BMI1NOTBM-NEXT: # %bb.7: ; X86-BMI1NOTBM-NEXT: movl %esi, %eax -; X86-BMI1NOTBM-NEXT: .LBB54_8: +; X86-BMI1NOTBM-NEXT: .LBB55_8: ; X86-BMI1NOTBM-NEXT: popl %esi ; X86-BMI1NOTBM-NEXT: popl %edi ; X86-BMI1NOTBM-NEXT: popl %ebx @@ -6856,32 +6989,32 @@ define i64 @bextr64_d0(i64 %val, i64 %numskipbits, i64 %numlowbits) nounwind { ; X86-BMI1BMI2-NEXT: shrxl %ecx, %edx, %esi ; X86-BMI1BMI2-NEXT: xorl %edx, %edx ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB54_2 +; X86-BMI1BMI2-NEXT: je .LBB55_2 ; X86-BMI1BMI2-NEXT: # %bb.1: ; X86-BMI1BMI2-NEXT: movl %esi, %eax ; X86-BMI1BMI2-NEXT: xorl %esi, %esi -; X86-BMI1BMI2-NEXT: .LBB54_2: +; X86-BMI1BMI2-NEXT: .LBB55_2: ; X86-BMI1BMI2-NEXT: movb $64, %cl ; X86-BMI1BMI2-NEXT: subb {{[0-9]+}}(%esp), %cl ; X86-BMI1BMI2-NEXT: shldl %cl, %eax, %esi ; X86-BMI1BMI2-NEXT: shlxl %ecx, %eax, %edi ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB54_4 +; X86-BMI1BMI2-NEXT: je .LBB55_4 ; X86-BMI1BMI2-NEXT: # %bb.3: ; X86-BMI1BMI2-NEXT: movl %edi, %esi ; X86-BMI1BMI2-NEXT: movl $0, %edi -; X86-BMI1BMI2-NEXT: .LBB54_4: +; X86-BMI1BMI2-NEXT: .LBB55_4: ; X86-BMI1BMI2-NEXT: shrxl %ecx, %esi, %eax -; X86-BMI1BMI2-NEXT: jne .LBB54_6 +; X86-BMI1BMI2-NEXT: jne .LBB55_6 ; X86-BMI1BMI2-NEXT: # %bb.5: ; X86-BMI1BMI2-NEXT: movl %eax, %edx -; X86-BMI1BMI2-NEXT: .LBB54_6: +; X86-BMI1BMI2-NEXT: .LBB55_6: ; X86-BMI1BMI2-NEXT: shrdl %cl, %esi, %edi ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: jne .LBB54_8 +; X86-BMI1BMI2-NEXT: jne .LBB55_8 ; X86-BMI1BMI2-NEXT: # %bb.7: ; X86-BMI1BMI2-NEXT: movl %edi, %eax -; X86-BMI1BMI2-NEXT: .LBB54_8: +; X86-BMI1BMI2-NEXT: .LBB55_8: ; X86-BMI1BMI2-NEXT: popl %esi ; X86-BMI1BMI2-NEXT: popl %edi ; X86-BMI1BMI2-NEXT: retl @@ -6932,36 +7065,36 @@ define i64 @bextr64_d1_indexzext(i64 %val, i8 %numskipbits, i8 %numlowbits) noun ; X86-NOBMI-NEXT: shrdl %cl, %edx, %edi ; X86-NOBMI-NEXT: xorl %esi, %esi ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: je .LBB55_2 +; X86-NOBMI-NEXT: je .LBB56_2 ; X86-NOBMI-NEXT: # %bb.1: ; X86-NOBMI-NEXT: movl %eax, %edi ; X86-NOBMI-NEXT: xorl %eax, %eax -; X86-NOBMI-NEXT: .LBB55_2: +; X86-NOBMI-NEXT: .LBB56_2: ; X86-NOBMI-NEXT: movb $64, %cl ; X86-NOBMI-NEXT: subb {{[0-9]+}}(%esp), %cl ; X86-NOBMI-NEXT: shldl %cl, %edi, %eax ; X86-NOBMI-NEXT: shll %cl, %edi ; X86-NOBMI-NEXT: testb $32, %cl ; X86-NOBMI-NEXT: movl %edi, %ebx -; X86-NOBMI-NEXT: jne .LBB55_4 +; X86-NOBMI-NEXT: jne .LBB56_4 ; X86-NOBMI-NEXT: # %bb.3: ; X86-NOBMI-NEXT: movl %eax, %ebx -; X86-NOBMI-NEXT: .LBB55_4: +; X86-NOBMI-NEXT: .LBB56_4: ; X86-NOBMI-NEXT: movl %ebx, %eax ; X86-NOBMI-NEXT: shrl %cl, %eax ; X86-NOBMI-NEXT: testb $32, %cl ; X86-NOBMI-NEXT: movl $0, %edx -; X86-NOBMI-NEXT: jne .LBB55_6 +; X86-NOBMI-NEXT: jne .LBB56_6 ; X86-NOBMI-NEXT: # %bb.5: ; X86-NOBMI-NEXT: movl %edi, %esi ; X86-NOBMI-NEXT: movl %eax, %edx -; X86-NOBMI-NEXT: .LBB55_6: +; X86-NOBMI-NEXT: .LBB56_6: ; X86-NOBMI-NEXT: shrdl %cl, %ebx, %esi ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: jne .LBB55_8 +; X86-NOBMI-NEXT: jne .LBB56_8 ; X86-NOBMI-NEXT: # %bb.7: ; X86-NOBMI-NEXT: movl %esi, %eax -; X86-NOBMI-NEXT: .LBB55_8: +; X86-NOBMI-NEXT: .LBB56_8: ; X86-NOBMI-NEXT: popl %esi ; X86-NOBMI-NEXT: popl %edi ; X86-NOBMI-NEXT: popl %ebx @@ -6980,36 +7113,36 @@ define i64 @bextr64_d1_indexzext(i64 %val, i8 %numskipbits, i8 %numlowbits) noun ; X86-BMI1NOTBM-NEXT: shrdl %cl, %edx, %edi ; X86-BMI1NOTBM-NEXT: xorl %esi, %esi ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: je .LBB55_2 +; X86-BMI1NOTBM-NEXT: je .LBB56_2 ; X86-BMI1NOTBM-NEXT: # %bb.1: ; X86-BMI1NOTBM-NEXT: movl %eax, %edi ; X86-BMI1NOTBM-NEXT: xorl %eax, %eax -; X86-BMI1NOTBM-NEXT: .LBB55_2: +; X86-BMI1NOTBM-NEXT: .LBB56_2: ; X86-BMI1NOTBM-NEXT: movb $64, %cl ; X86-BMI1NOTBM-NEXT: subb {{[0-9]+}}(%esp), %cl ; X86-BMI1NOTBM-NEXT: shldl %cl, %edi, %eax ; X86-BMI1NOTBM-NEXT: shll %cl, %edi ; X86-BMI1NOTBM-NEXT: testb $32, %cl ; X86-BMI1NOTBM-NEXT: movl %edi, %ebx -; X86-BMI1NOTBM-NEXT: jne .LBB55_4 +; X86-BMI1NOTBM-NEXT: jne .LBB56_4 ; X86-BMI1NOTBM-NEXT: # %bb.3: ; X86-BMI1NOTBM-NEXT: movl %eax, %ebx -; X86-BMI1NOTBM-NEXT: .LBB55_4: +; X86-BMI1NOTBM-NEXT: .LBB56_4: ; X86-BMI1NOTBM-NEXT: movl %ebx, %eax ; X86-BMI1NOTBM-NEXT: shrl %cl, %eax ; X86-BMI1NOTBM-NEXT: testb $32, %cl ; X86-BMI1NOTBM-NEXT: movl $0, %edx -; X86-BMI1NOTBM-NEXT: jne .LBB55_6 +; X86-BMI1NOTBM-NEXT: jne .LBB56_6 ; X86-BMI1NOTBM-NEXT: # %bb.5: ; X86-BMI1NOTBM-NEXT: movl %edi, %esi ; X86-BMI1NOTBM-NEXT: movl %eax, %edx -; X86-BMI1NOTBM-NEXT: .LBB55_6: +; X86-BMI1NOTBM-NEXT: .LBB56_6: ; X86-BMI1NOTBM-NEXT: shrdl %cl, %ebx, %esi ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: jne .LBB55_8 +; X86-BMI1NOTBM-NEXT: jne .LBB56_8 ; X86-BMI1NOTBM-NEXT: # %bb.7: ; X86-BMI1NOTBM-NEXT: movl %esi, %eax -; X86-BMI1NOTBM-NEXT: .LBB55_8: +; X86-BMI1NOTBM-NEXT: .LBB56_8: ; X86-BMI1NOTBM-NEXT: popl %esi ; X86-BMI1NOTBM-NEXT: popl %edi ; X86-BMI1NOTBM-NEXT: popl %ebx @@ -7026,32 +7159,32 @@ define i64 @bextr64_d1_indexzext(i64 %val, i8 %numskipbits, i8 %numlowbits) noun ; X86-BMI1BMI2-NEXT: shrxl %ecx, %edx, %esi ; X86-BMI1BMI2-NEXT: xorl %edx, %edx ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB55_2 +; X86-BMI1BMI2-NEXT: je .LBB56_2 ; X86-BMI1BMI2-NEXT: # %bb.1: ; X86-BMI1BMI2-NEXT: movl %esi, %eax ; X86-BMI1BMI2-NEXT: xorl %esi, %esi -; X86-BMI1BMI2-NEXT: .LBB55_2: +; X86-BMI1BMI2-NEXT: .LBB56_2: ; X86-BMI1BMI2-NEXT: movb $64, %cl ; X86-BMI1BMI2-NEXT: subb {{[0-9]+}}(%esp), %cl ; X86-BMI1BMI2-NEXT: shldl %cl, %eax, %esi ; X86-BMI1BMI2-NEXT: shlxl %ecx, %eax, %edi ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB55_4 +; X86-BMI1BMI2-NEXT: je .LBB56_4 ; X86-BMI1BMI2-NEXT: # %bb.3: ; X86-BMI1BMI2-NEXT: movl %edi, %esi ; X86-BMI1BMI2-NEXT: movl $0, %edi -; X86-BMI1BMI2-NEXT: .LBB55_4: +; X86-BMI1BMI2-NEXT: .LBB56_4: ; X86-BMI1BMI2-NEXT: shrxl %ecx, %esi, %eax -; X86-BMI1BMI2-NEXT: jne .LBB55_6 +; X86-BMI1BMI2-NEXT: jne .LBB56_6 ; X86-BMI1BMI2-NEXT: # %bb.5: ; X86-BMI1BMI2-NEXT: movl %eax, %edx -; X86-BMI1BMI2-NEXT: .LBB55_6: +; X86-BMI1BMI2-NEXT: .LBB56_6: ; X86-BMI1BMI2-NEXT: shrdl %cl, %esi, %edi ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: jne .LBB55_8 +; X86-BMI1BMI2-NEXT: jne .LBB56_8 ; X86-BMI1BMI2-NEXT: # %bb.7: ; X86-BMI1BMI2-NEXT: movl %edi, %eax -; X86-BMI1BMI2-NEXT: .LBB55_8: +; X86-BMI1BMI2-NEXT: .LBB56_8: ; X86-BMI1BMI2-NEXT: popl %esi ; X86-BMI1BMI2-NEXT: popl %edi ; X86-BMI1BMI2-NEXT: retl @@ -7107,36 +7240,36 @@ define i64 @bextr64_d2_load(i64* %w, i64 %numskipbits, i64 %numlowbits) nounwind ; X86-NOBMI-NEXT: shrdl %cl, %edx, %edi ; X86-NOBMI-NEXT: xorl %esi, %esi ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: je .LBB56_2 +; X86-NOBMI-NEXT: je .LBB57_2 ; X86-NOBMI-NEXT: # %bb.1: ; X86-NOBMI-NEXT: movl %eax, %edi ; X86-NOBMI-NEXT: xorl %eax, %eax -; X86-NOBMI-NEXT: .LBB56_2: +; X86-NOBMI-NEXT: .LBB57_2: ; X86-NOBMI-NEXT: movb $64, %cl ; X86-NOBMI-NEXT: subb {{[0-9]+}}(%esp), %cl ; X86-NOBMI-NEXT: shldl %cl, %edi, %eax ; X86-NOBMI-NEXT: shll %cl, %edi ; X86-NOBMI-NEXT: testb $32, %cl ; X86-NOBMI-NEXT: movl %edi, %ebx -; X86-NOBMI-NEXT: jne .LBB56_4 +; X86-NOBMI-NEXT: jne .LBB57_4 ; X86-NOBMI-NEXT: # %bb.3: ; X86-NOBMI-NEXT: movl %eax, %ebx -; X86-NOBMI-NEXT: .LBB56_4: +; X86-NOBMI-NEXT: .LBB57_4: ; X86-NOBMI-NEXT: movl %ebx, %eax ; X86-NOBMI-NEXT: shrl %cl, %eax ; X86-NOBMI-NEXT: testb $32, %cl ; X86-NOBMI-NEXT: movl $0, %edx -; X86-NOBMI-NEXT: jne .LBB56_6 +; X86-NOBMI-NEXT: jne .LBB57_6 ; X86-NOBMI-NEXT: # %bb.5: ; X86-NOBMI-NEXT: movl %edi, %esi ; X86-NOBMI-NEXT: movl %eax, %edx -; X86-NOBMI-NEXT: .LBB56_6: +; X86-NOBMI-NEXT: .LBB57_6: ; X86-NOBMI-NEXT: shrdl %cl, %ebx, %esi ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: jne .LBB56_8 +; X86-NOBMI-NEXT: jne .LBB57_8 ; X86-NOBMI-NEXT: # %bb.7: ; X86-NOBMI-NEXT: movl %esi, %eax -; X86-NOBMI-NEXT: .LBB56_8: +; X86-NOBMI-NEXT: .LBB57_8: ; X86-NOBMI-NEXT: popl %esi ; X86-NOBMI-NEXT: popl %edi ; X86-NOBMI-NEXT: popl %ebx @@ -7156,36 +7289,36 @@ define i64 @bextr64_d2_load(i64* %w, i64 %numskipbits, i64 %numlowbits) nounwind ; X86-BMI1NOTBM-NEXT: shrdl %cl, %edx, %edi ; X86-BMI1NOTBM-NEXT: xorl %esi, %esi ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: je .LBB56_2 +; X86-BMI1NOTBM-NEXT: je .LBB57_2 ; X86-BMI1NOTBM-NEXT: # %bb.1: ; X86-BMI1NOTBM-NEXT: movl %eax, %edi ; X86-BMI1NOTBM-NEXT: xorl %eax, %eax -; X86-BMI1NOTBM-NEXT: .LBB56_2: +; X86-BMI1NOTBM-NEXT: .LBB57_2: ; X86-BMI1NOTBM-NEXT: movb $64, %cl ; X86-BMI1NOTBM-NEXT: subb {{[0-9]+}}(%esp), %cl ; X86-BMI1NOTBM-NEXT: shldl %cl, %edi, %eax ; X86-BMI1NOTBM-NEXT: shll %cl, %edi ; X86-BMI1NOTBM-NEXT: testb $32, %cl ; X86-BMI1NOTBM-NEXT: movl %edi, %ebx -; X86-BMI1NOTBM-NEXT: jne .LBB56_4 +; X86-BMI1NOTBM-NEXT: jne .LBB57_4 ; X86-BMI1NOTBM-NEXT: # %bb.3: ; X86-BMI1NOTBM-NEXT: movl %eax, %ebx -; X86-BMI1NOTBM-NEXT: .LBB56_4: +; X86-BMI1NOTBM-NEXT: .LBB57_4: ; X86-BMI1NOTBM-NEXT: movl %ebx, %eax ; X86-BMI1NOTBM-NEXT: shrl %cl, %eax ; X86-BMI1NOTBM-NEXT: testb $32, %cl ; X86-BMI1NOTBM-NEXT: movl $0, %edx -; X86-BMI1NOTBM-NEXT: jne .LBB56_6 +; X86-BMI1NOTBM-NEXT: jne .LBB57_6 ; X86-BMI1NOTBM-NEXT: # %bb.5: ; X86-BMI1NOTBM-NEXT: movl %edi, %esi ; X86-BMI1NOTBM-NEXT: movl %eax, %edx -; X86-BMI1NOTBM-NEXT: .LBB56_6: +; X86-BMI1NOTBM-NEXT: .LBB57_6: ; X86-BMI1NOTBM-NEXT: shrdl %cl, %ebx, %esi ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: jne .LBB56_8 +; X86-BMI1NOTBM-NEXT: jne .LBB57_8 ; X86-BMI1NOTBM-NEXT: # %bb.7: ; X86-BMI1NOTBM-NEXT: movl %esi, %eax -; X86-BMI1NOTBM-NEXT: .LBB56_8: +; X86-BMI1NOTBM-NEXT: .LBB57_8: ; X86-BMI1NOTBM-NEXT: popl %esi ; X86-BMI1NOTBM-NEXT: popl %edi ; X86-BMI1NOTBM-NEXT: popl %ebx @@ -7203,32 +7336,32 @@ define i64 @bextr64_d2_load(i64* %w, i64 %numskipbits, i64 %numlowbits) nounwind ; X86-BMI1BMI2-NEXT: shrdl %cl, %edx, %eax ; X86-BMI1BMI2-NEXT: xorl %edx, %edx ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB56_2 +; X86-BMI1BMI2-NEXT: je .LBB57_2 ; X86-BMI1BMI2-NEXT: # %bb.1: ; X86-BMI1BMI2-NEXT: movl %esi, %eax ; X86-BMI1BMI2-NEXT: xorl %esi, %esi -; X86-BMI1BMI2-NEXT: .LBB56_2: +; X86-BMI1BMI2-NEXT: .LBB57_2: ; X86-BMI1BMI2-NEXT: movb $64, %cl ; X86-BMI1BMI2-NEXT: subb {{[0-9]+}}(%esp), %cl ; X86-BMI1BMI2-NEXT: shldl %cl, %eax, %esi ; X86-BMI1BMI2-NEXT: shlxl %ecx, %eax, %edi ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB56_4 +; X86-BMI1BMI2-NEXT: je .LBB57_4 ; X86-BMI1BMI2-NEXT: # %bb.3: ; X86-BMI1BMI2-NEXT: movl %edi, %esi ; X86-BMI1BMI2-NEXT: movl $0, %edi -; X86-BMI1BMI2-NEXT: .LBB56_4: +; X86-BMI1BMI2-NEXT: .LBB57_4: ; X86-BMI1BMI2-NEXT: shrxl %ecx, %esi, %eax -; X86-BMI1BMI2-NEXT: jne .LBB56_6 +; X86-BMI1BMI2-NEXT: jne .LBB57_6 ; X86-BMI1BMI2-NEXT: # %bb.5: ; X86-BMI1BMI2-NEXT: movl %eax, %edx -; X86-BMI1BMI2-NEXT: .LBB56_6: +; X86-BMI1BMI2-NEXT: .LBB57_6: ; X86-BMI1BMI2-NEXT: shrdl %cl, %esi, %edi ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: jne .LBB56_8 +; X86-BMI1BMI2-NEXT: jne .LBB57_8 ; X86-BMI1BMI2-NEXT: # %bb.7: ; X86-BMI1BMI2-NEXT: movl %edi, %eax -; X86-BMI1BMI2-NEXT: .LBB56_8: +; X86-BMI1BMI2-NEXT: .LBB57_8: ; X86-BMI1BMI2-NEXT: popl %esi ; X86-BMI1BMI2-NEXT: popl %edi ; X86-BMI1BMI2-NEXT: retl @@ -7281,36 +7414,36 @@ define i64 @bextr64_d3_load_indexzext(i64* %w, i8 %numskipbits, i8 %numlowbits) ; X86-NOBMI-NEXT: shrdl %cl, %edx, %edi ; X86-NOBMI-NEXT: xorl %esi, %esi ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: je .LBB57_2 +; X86-NOBMI-NEXT: je .LBB58_2 ; X86-NOBMI-NEXT: # %bb.1: ; X86-NOBMI-NEXT: movl %eax, %edi ; X86-NOBMI-NEXT: xorl %eax, %eax -; X86-NOBMI-NEXT: .LBB57_2: +; X86-NOBMI-NEXT: .LBB58_2: ; X86-NOBMI-NEXT: movb $64, %cl ; X86-NOBMI-NEXT: subb {{[0-9]+}}(%esp), %cl ; X86-NOBMI-NEXT: shldl %cl, %edi, %eax ; X86-NOBMI-NEXT: shll %cl, %edi ; X86-NOBMI-NEXT: testb $32, %cl ; X86-NOBMI-NEXT: movl %edi, %ebx -; X86-NOBMI-NEXT: jne .LBB57_4 +; X86-NOBMI-NEXT: jne .LBB58_4 ; X86-NOBMI-NEXT: # %bb.3: ; X86-NOBMI-NEXT: movl %eax, %ebx -; X86-NOBMI-NEXT: .LBB57_4: +; X86-NOBMI-NEXT: .LBB58_4: ; X86-NOBMI-NEXT: movl %ebx, %eax ; X86-NOBMI-NEXT: shrl %cl, %eax ; X86-NOBMI-NEXT: testb $32, %cl ; X86-NOBMI-NEXT: movl $0, %edx -; X86-NOBMI-NEXT: jne .LBB57_6 +; X86-NOBMI-NEXT: jne .LBB58_6 ; X86-NOBMI-NEXT: # %bb.5: ; X86-NOBMI-NEXT: movl %edi, %esi ; X86-NOBMI-NEXT: movl %eax, %edx -; X86-NOBMI-NEXT: .LBB57_6: +; X86-NOBMI-NEXT: .LBB58_6: ; X86-NOBMI-NEXT: shrdl %cl, %ebx, %esi ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: jne .LBB57_8 +; X86-NOBMI-NEXT: jne .LBB58_8 ; X86-NOBMI-NEXT: # %bb.7: ; X86-NOBMI-NEXT: movl %esi, %eax -; X86-NOBMI-NEXT: .LBB57_8: +; X86-NOBMI-NEXT: .LBB58_8: ; X86-NOBMI-NEXT: popl %esi ; X86-NOBMI-NEXT: popl %edi ; X86-NOBMI-NEXT: popl %ebx @@ -7330,36 +7463,36 @@ define i64 @bextr64_d3_load_indexzext(i64* %w, i8 %numskipbits, i8 %numlowbits) ; X86-BMI1NOTBM-NEXT: shrdl %cl, %edx, %edi ; X86-BMI1NOTBM-NEXT: xorl %esi, %esi ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: je .LBB57_2 +; X86-BMI1NOTBM-NEXT: je .LBB58_2 ; X86-BMI1NOTBM-NEXT: # %bb.1: ; X86-BMI1NOTBM-NEXT: movl %eax, %edi ; X86-BMI1NOTBM-NEXT: xorl %eax, %eax -; X86-BMI1NOTBM-NEXT: .LBB57_2: +; X86-BMI1NOTBM-NEXT: .LBB58_2: ; X86-BMI1NOTBM-NEXT: movb $64, %cl ; X86-BMI1NOTBM-NEXT: subb {{[0-9]+}}(%esp), %cl ; X86-BMI1NOTBM-NEXT: shldl %cl, %edi, %eax ; X86-BMI1NOTBM-NEXT: shll %cl, %edi ; X86-BMI1NOTBM-NEXT: testb $32, %cl ; X86-BMI1NOTBM-NEXT: movl %edi, %ebx -; X86-BMI1NOTBM-NEXT: jne .LBB57_4 +; X86-BMI1NOTBM-NEXT: jne .LBB58_4 ; X86-BMI1NOTBM-NEXT: # %bb.3: ; X86-BMI1NOTBM-NEXT: movl %eax, %ebx -; X86-BMI1NOTBM-NEXT: .LBB57_4: +; X86-BMI1NOTBM-NEXT: .LBB58_4: ; X86-BMI1NOTBM-NEXT: movl %ebx, %eax ; X86-BMI1NOTBM-NEXT: shrl %cl, %eax ; X86-BMI1NOTBM-NEXT: testb $32, %cl ; X86-BMI1NOTBM-NEXT: movl $0, %edx -; X86-BMI1NOTBM-NEXT: jne .LBB57_6 +; X86-BMI1NOTBM-NEXT: jne .LBB58_6 ; X86-BMI1NOTBM-NEXT: # %bb.5: ; X86-BMI1NOTBM-NEXT: movl %edi, %esi ; X86-BMI1NOTBM-NEXT: movl %eax, %edx -; X86-BMI1NOTBM-NEXT: .LBB57_6: +; X86-BMI1NOTBM-NEXT: .LBB58_6: ; X86-BMI1NOTBM-NEXT: shrdl %cl, %ebx, %esi ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: jne .LBB57_8 +; X86-BMI1NOTBM-NEXT: jne .LBB58_8 ; X86-BMI1NOTBM-NEXT: # %bb.7: ; X86-BMI1NOTBM-NEXT: movl %esi, %eax -; X86-BMI1NOTBM-NEXT: .LBB57_8: +; X86-BMI1NOTBM-NEXT: .LBB58_8: ; X86-BMI1NOTBM-NEXT: popl %esi ; X86-BMI1NOTBM-NEXT: popl %edi ; X86-BMI1NOTBM-NEXT: popl %ebx @@ -7377,32 +7510,32 @@ define i64 @bextr64_d3_load_indexzext(i64* %w, i8 %numskipbits, i8 %numlowbits) ; X86-BMI1BMI2-NEXT: shrdl %cl, %edx, %eax ; X86-BMI1BMI2-NEXT: xorl %edx, %edx ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB57_2 +; X86-BMI1BMI2-NEXT: je .LBB58_2 ; X86-BMI1BMI2-NEXT: # %bb.1: ; X86-BMI1BMI2-NEXT: movl %esi, %eax ; X86-BMI1BMI2-NEXT: xorl %esi, %esi -; X86-BMI1BMI2-NEXT: .LBB57_2: +; X86-BMI1BMI2-NEXT: .LBB58_2: ; X86-BMI1BMI2-NEXT: movb $64, %cl ; X86-BMI1BMI2-NEXT: subb {{[0-9]+}}(%esp), %cl ; X86-BMI1BMI2-NEXT: shldl %cl, %eax, %esi ; X86-BMI1BMI2-NEXT: shlxl %ecx, %eax, %edi ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB57_4 +; X86-BMI1BMI2-NEXT: je .LBB58_4 ; X86-BMI1BMI2-NEXT: # %bb.3: ; X86-BMI1BMI2-NEXT: movl %edi, %esi ; X86-BMI1BMI2-NEXT: movl $0, %edi -; X86-BMI1BMI2-NEXT: .LBB57_4: +; X86-BMI1BMI2-NEXT: .LBB58_4: ; X86-BMI1BMI2-NEXT: shrxl %ecx, %esi, %eax -; X86-BMI1BMI2-NEXT: jne .LBB57_6 +; X86-BMI1BMI2-NEXT: jne .LBB58_6 ; X86-BMI1BMI2-NEXT: # %bb.5: ; X86-BMI1BMI2-NEXT: movl %eax, %edx -; X86-BMI1BMI2-NEXT: .LBB57_6: +; X86-BMI1BMI2-NEXT: .LBB58_6: ; X86-BMI1BMI2-NEXT: shrdl %cl, %esi, %edi ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: jne .LBB57_8 +; X86-BMI1BMI2-NEXT: jne .LBB58_8 ; X86-BMI1BMI2-NEXT: # %bb.7: ; X86-BMI1BMI2-NEXT: movl %edi, %eax -; X86-BMI1BMI2-NEXT: .LBB57_8: +; X86-BMI1BMI2-NEXT: .LBB58_8: ; X86-BMI1BMI2-NEXT: popl %esi ; X86-BMI1BMI2-NEXT: popl %edi ; X86-BMI1BMI2-NEXT: retl @@ -7461,37 +7594,37 @@ define i64 @bextr64_d5_skipextrauses(i64 %val, i64 %numskipbits, i64 %numlowbits ; X86-NOBMI-NEXT: shrdl %cl, %edx, %ebx ; X86-NOBMI-NEXT: xorl %edx, %edx ; X86-NOBMI-NEXT: testb $32, %al -; X86-NOBMI-NEXT: je .LBB58_2 +; X86-NOBMI-NEXT: je .LBB59_2 ; X86-NOBMI-NEXT: # %bb.1: ; X86-NOBMI-NEXT: movl %esi, %ebx ; X86-NOBMI-NEXT: xorl %esi, %esi -; X86-NOBMI-NEXT: .LBB58_2: +; X86-NOBMI-NEXT: .LBB59_2: ; X86-NOBMI-NEXT: movb $64, %cl ; X86-NOBMI-NEXT: subb {{[0-9]+}}(%esp), %cl ; X86-NOBMI-NEXT: shldl %cl, %ebx, %esi ; X86-NOBMI-NEXT: shll %cl, %ebx ; X86-NOBMI-NEXT: testb $32, %cl ; X86-NOBMI-NEXT: movl %ebx, %ebp -; X86-NOBMI-NEXT: jne .LBB58_4 +; X86-NOBMI-NEXT: jne .LBB59_4 ; X86-NOBMI-NEXT: # %bb.3: ; X86-NOBMI-NEXT: movl %esi, %ebp -; X86-NOBMI-NEXT: .LBB58_4: +; X86-NOBMI-NEXT: .LBB59_4: ; X86-NOBMI-NEXT: movl %ebp, %esi ; X86-NOBMI-NEXT: shrl %cl, %esi ; X86-NOBMI-NEXT: testb $32, %cl ; X86-NOBMI-NEXT: movl $0, %edi -; X86-NOBMI-NEXT: jne .LBB58_6 +; X86-NOBMI-NEXT: jne .LBB59_6 ; X86-NOBMI-NEXT: # %bb.5: ; X86-NOBMI-NEXT: movl %ebx, %edx ; X86-NOBMI-NEXT: movl %esi, %edi -; X86-NOBMI-NEXT: .LBB58_6: +; X86-NOBMI-NEXT: .LBB59_6: ; X86-NOBMI-NEXT: shrdl %cl, %ebp, %edx ; X86-NOBMI-NEXT: testb $32, %cl ; X86-NOBMI-NEXT: movl {{[0-9]+}}(%esp), %ecx -; X86-NOBMI-NEXT: jne .LBB58_8 +; X86-NOBMI-NEXT: jne .LBB59_8 ; X86-NOBMI-NEXT: # %bb.7: ; X86-NOBMI-NEXT: movl %edx, %esi -; X86-NOBMI-NEXT: .LBB58_8: +; X86-NOBMI-NEXT: .LBB59_8: ; X86-NOBMI-NEXT: subl $8, %esp ; X86-NOBMI-NEXT: pushl %ecx ; X86-NOBMI-NEXT: pushl %eax @@ -7522,37 +7655,37 @@ define i64 @bextr64_d5_skipextrauses(i64 %val, i64 %numskipbits, i64 %numlowbits ; X86-BMI1NOTBM-NEXT: shrdl %cl, %edx, %ebx ; X86-BMI1NOTBM-NEXT: xorl %edx, %edx ; X86-BMI1NOTBM-NEXT: testb $32, %al -; X86-BMI1NOTBM-NEXT: je .LBB58_2 +; X86-BMI1NOTBM-NEXT: je .LBB59_2 ; X86-BMI1NOTBM-NEXT: # %bb.1: ; X86-BMI1NOTBM-NEXT: movl %esi, %ebx ; X86-BMI1NOTBM-NEXT: xorl %esi, %esi -; X86-BMI1NOTBM-NEXT: .LBB58_2: +; X86-BMI1NOTBM-NEXT: .LBB59_2: ; X86-BMI1NOTBM-NEXT: movb $64, %cl ; X86-BMI1NOTBM-NEXT: subb {{[0-9]+}}(%esp), %cl ; X86-BMI1NOTBM-NEXT: shldl %cl, %ebx, %esi ; X86-BMI1NOTBM-NEXT: shll %cl, %ebx ; X86-BMI1NOTBM-NEXT: testb $32, %cl ; X86-BMI1NOTBM-NEXT: movl %ebx, %ebp -; X86-BMI1NOTBM-NEXT: jne .LBB58_4 +; X86-BMI1NOTBM-NEXT: jne .LBB59_4 ; X86-BMI1NOTBM-NEXT: # %bb.3: ; X86-BMI1NOTBM-NEXT: movl %esi, %ebp -; X86-BMI1NOTBM-NEXT: .LBB58_4: +; X86-BMI1NOTBM-NEXT: .LBB59_4: ; X86-BMI1NOTBM-NEXT: movl %ebp, %esi ; X86-BMI1NOTBM-NEXT: shrl %cl, %esi ; X86-BMI1NOTBM-NEXT: testb $32, %cl ; X86-BMI1NOTBM-NEXT: movl $0, %edi -; X86-BMI1NOTBM-NEXT: jne .LBB58_6 +; X86-BMI1NOTBM-NEXT: jne .LBB59_6 ; X86-BMI1NOTBM-NEXT: # %bb.5: ; X86-BMI1NOTBM-NEXT: movl %ebx, %edx ; X86-BMI1NOTBM-NEXT: movl %esi, %edi -; X86-BMI1NOTBM-NEXT: .LBB58_6: +; X86-BMI1NOTBM-NEXT: .LBB59_6: ; X86-BMI1NOTBM-NEXT: shrdl %cl, %ebp, %edx ; X86-BMI1NOTBM-NEXT: testb $32, %cl ; X86-BMI1NOTBM-NEXT: movl {{[0-9]+}}(%esp), %ecx -; X86-BMI1NOTBM-NEXT: jne .LBB58_8 +; X86-BMI1NOTBM-NEXT: jne .LBB59_8 ; X86-BMI1NOTBM-NEXT: # %bb.7: ; X86-BMI1NOTBM-NEXT: movl %edx, %esi -; X86-BMI1NOTBM-NEXT: .LBB58_8: +; X86-BMI1NOTBM-NEXT: .LBB59_8: ; X86-BMI1NOTBM-NEXT: subl $8, %esp ; X86-BMI1NOTBM-NEXT: pushl %ecx ; X86-BMI1NOTBM-NEXT: pushl %eax @@ -7580,33 +7713,33 @@ define i64 @bextr64_d5_skipextrauses(i64 %val, i64 %numskipbits, i64 %numlowbits ; X86-BMI1BMI2-NEXT: shrxl %eax, %edx, %edx ; X86-BMI1BMI2-NEXT: xorl %esi, %esi ; X86-BMI1BMI2-NEXT: testb $32, %al -; X86-BMI1BMI2-NEXT: je .LBB58_2 +; X86-BMI1BMI2-NEXT: je .LBB59_2 ; X86-BMI1BMI2-NEXT: # %bb.1: ; X86-BMI1BMI2-NEXT: movl %edx, %edi ; X86-BMI1BMI2-NEXT: xorl %edx, %edx -; X86-BMI1BMI2-NEXT: .LBB58_2: +; X86-BMI1BMI2-NEXT: .LBB59_2: ; X86-BMI1BMI2-NEXT: movb $64, %cl ; X86-BMI1BMI2-NEXT: subb {{[0-9]+}}(%esp), %cl ; X86-BMI1BMI2-NEXT: shldl %cl, %edi, %edx ; X86-BMI1BMI2-NEXT: shlxl %ecx, %edi, %ebx ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB58_4 +; X86-BMI1BMI2-NEXT: je .LBB59_4 ; X86-BMI1BMI2-NEXT: # %bb.3: ; X86-BMI1BMI2-NEXT: movl %ebx, %edx ; X86-BMI1BMI2-NEXT: movl $0, %ebx -; X86-BMI1BMI2-NEXT: .LBB58_4: +; X86-BMI1BMI2-NEXT: .LBB59_4: ; X86-BMI1BMI2-NEXT: shrxl %ecx, %edx, %edi -; X86-BMI1BMI2-NEXT: jne .LBB58_6 +; X86-BMI1BMI2-NEXT: jne .LBB59_6 ; X86-BMI1BMI2-NEXT: # %bb.5: ; X86-BMI1BMI2-NEXT: movl %edi, %esi -; X86-BMI1BMI2-NEXT: .LBB58_6: +; X86-BMI1BMI2-NEXT: .LBB59_6: ; X86-BMI1BMI2-NEXT: shrdl %cl, %edx, %ebx ; X86-BMI1BMI2-NEXT: testb $32, %cl ; X86-BMI1BMI2-NEXT: movl {{[0-9]+}}(%esp), %ecx -; X86-BMI1BMI2-NEXT: jne .LBB58_8 +; X86-BMI1BMI2-NEXT: jne .LBB59_8 ; X86-BMI1BMI2-NEXT: # %bb.7: ; X86-BMI1BMI2-NEXT: movl %ebx, %edi -; X86-BMI1BMI2-NEXT: .LBB58_8: +; X86-BMI1BMI2-NEXT: .LBB59_8: ; X86-BMI1BMI2-NEXT: subl $8, %esp ; X86-BMI1BMI2-NEXT: pushl %ecx ; X86-BMI1BMI2-NEXT: pushl %eax @@ -7680,28 +7813,28 @@ define i32 @bextr64_32_d0(i64 %val, i64 %numskipbits, i64 %numlowbits) nounwind ; X86-NOBMI-NEXT: shrl %cl, %eax ; X86-NOBMI-NEXT: shrdl %cl, %esi, %edx ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: je .LBB59_2 +; X86-NOBMI-NEXT: je .LBB60_2 ; X86-NOBMI-NEXT: # %bb.1: ; X86-NOBMI-NEXT: movl %eax, %edx ; X86-NOBMI-NEXT: xorl %eax, %eax -; X86-NOBMI-NEXT: .LBB59_2: +; X86-NOBMI-NEXT: .LBB60_2: ; X86-NOBMI-NEXT: movb $64, %cl ; X86-NOBMI-NEXT: subb {{[0-9]+}}(%esp), %cl ; X86-NOBMI-NEXT: shldl %cl, %edx, %eax ; X86-NOBMI-NEXT: shll %cl, %edx ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: je .LBB59_4 +; X86-NOBMI-NEXT: je .LBB60_4 ; X86-NOBMI-NEXT: # %bb.3: ; X86-NOBMI-NEXT: movl %edx, %eax ; X86-NOBMI-NEXT: xorl %edx, %edx -; X86-NOBMI-NEXT: .LBB59_4: +; X86-NOBMI-NEXT: .LBB60_4: ; X86-NOBMI-NEXT: shrdl %cl, %eax, %edx ; X86-NOBMI-NEXT: shrl %cl, %eax ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: jne .LBB59_6 +; X86-NOBMI-NEXT: jne .LBB60_6 ; X86-NOBMI-NEXT: # %bb.5: ; X86-NOBMI-NEXT: movl %edx, %eax -; X86-NOBMI-NEXT: .LBB59_6: +; X86-NOBMI-NEXT: .LBB60_6: ; X86-NOBMI-NEXT: popl %esi ; X86-NOBMI-NEXT: retl ; @@ -7715,28 +7848,28 @@ define i32 @bextr64_32_d0(i64 %val, i64 %numskipbits, i64 %numlowbits) nounwind ; X86-BMI1NOTBM-NEXT: shrl %cl, %eax ; X86-BMI1NOTBM-NEXT: shrdl %cl, %esi, %edx ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: je .LBB59_2 +; X86-BMI1NOTBM-NEXT: je .LBB60_2 ; X86-BMI1NOTBM-NEXT: # %bb.1: ; X86-BMI1NOTBM-NEXT: movl %eax, %edx ; X86-BMI1NOTBM-NEXT: xorl %eax, %eax -; X86-BMI1NOTBM-NEXT: .LBB59_2: +; X86-BMI1NOTBM-NEXT: .LBB60_2: ; X86-BMI1NOTBM-NEXT: movb $64, %cl ; X86-BMI1NOTBM-NEXT: subb {{[0-9]+}}(%esp), %cl ; X86-BMI1NOTBM-NEXT: shldl %cl, %edx, %eax ; X86-BMI1NOTBM-NEXT: shll %cl, %edx ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: je .LBB59_4 +; X86-BMI1NOTBM-NEXT: je .LBB60_4 ; X86-BMI1NOTBM-NEXT: # %bb.3: ; X86-BMI1NOTBM-NEXT: movl %edx, %eax ; X86-BMI1NOTBM-NEXT: xorl %edx, %edx -; X86-BMI1NOTBM-NEXT: .LBB59_4: +; X86-BMI1NOTBM-NEXT: .LBB60_4: ; X86-BMI1NOTBM-NEXT: shrdl %cl, %eax, %edx ; X86-BMI1NOTBM-NEXT: shrl %cl, %eax ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: jne .LBB59_6 +; X86-BMI1NOTBM-NEXT: jne .LBB60_6 ; X86-BMI1NOTBM-NEXT: # %bb.5: ; X86-BMI1NOTBM-NEXT: movl %edx, %eax -; X86-BMI1NOTBM-NEXT: .LBB59_6: +; X86-BMI1NOTBM-NEXT: .LBB60_6: ; X86-BMI1NOTBM-NEXT: popl %esi ; X86-BMI1NOTBM-NEXT: retl ; @@ -7748,27 +7881,27 @@ define i32 @bextr64_32_d0(i64 %val, i64 %numskipbits, i64 %numlowbits) nounwind ; X86-BMI1BMI2-NEXT: shrdl %cl, %edx, %eax ; X86-BMI1BMI2-NEXT: shrxl %ecx, %edx, %edx ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB59_2 +; X86-BMI1BMI2-NEXT: je .LBB60_2 ; X86-BMI1BMI2-NEXT: # %bb.1: ; X86-BMI1BMI2-NEXT: movl %edx, %eax ; X86-BMI1BMI2-NEXT: xorl %edx, %edx -; X86-BMI1BMI2-NEXT: .LBB59_2: +; X86-BMI1BMI2-NEXT: .LBB60_2: ; X86-BMI1BMI2-NEXT: movb $64, %cl ; X86-BMI1BMI2-NEXT: subb {{[0-9]+}}(%esp), %cl ; X86-BMI1BMI2-NEXT: shldl %cl, %eax, %edx ; X86-BMI1BMI2-NEXT: shlxl %ecx, %eax, %eax ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB59_4 +; X86-BMI1BMI2-NEXT: je .LBB60_4 ; X86-BMI1BMI2-NEXT: # %bb.3: ; X86-BMI1BMI2-NEXT: movl %eax, %edx ; X86-BMI1BMI2-NEXT: xorl %eax, %eax -; X86-BMI1BMI2-NEXT: .LBB59_4: +; X86-BMI1BMI2-NEXT: .LBB60_4: ; X86-BMI1BMI2-NEXT: shrdl %cl, %edx, %eax ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB59_6 +; X86-BMI1BMI2-NEXT: je .LBB60_6 ; X86-BMI1BMI2-NEXT: # %bb.5: ; X86-BMI1BMI2-NEXT: shrxl %ecx, %edx, %eax -; X86-BMI1BMI2-NEXT: .LBB59_6: +; X86-BMI1BMI2-NEXT: .LBB60_6: ; X86-BMI1BMI2-NEXT: retl ; ; X64-NOBMI-LABEL: bextr64_32_d0: @@ -7819,10 +7952,10 @@ define i32 @bextr64_32_d1(i64 %val, i64 %numskipbits, i32 %numlowbits) nounwind ; X86-NOBMI-NEXT: shrl %cl, %eax ; X86-NOBMI-NEXT: shrdl %cl, %esi, %edx ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: jne .LBB60_2 +; X86-NOBMI-NEXT: jne .LBB61_2 ; X86-NOBMI-NEXT: # %bb.1: ; X86-NOBMI-NEXT: movl %edx, %eax -; X86-NOBMI-NEXT: .LBB60_2: +; X86-NOBMI-NEXT: .LBB61_2: ; X86-NOBMI-NEXT: xorl %ecx, %ecx ; X86-NOBMI-NEXT: subb {{[0-9]+}}(%esp), %cl ; X86-NOBMI-NEXT: shll %cl, %eax @@ -7843,10 +7976,10 @@ define i32 @bextr64_32_d1(i64 %val, i64 %numskipbits, i32 %numlowbits) nounwind ; X86-BMI1NOTBM-NEXT: shrl %cl, %edx ; X86-BMI1NOTBM-NEXT: shrdl %cl, %edi, %esi ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: jne .LBB60_2 +; X86-BMI1NOTBM-NEXT: jne .LBB61_2 ; X86-BMI1NOTBM-NEXT: # %bb.1: ; X86-BMI1NOTBM-NEXT: movl %esi, %edx -; X86-BMI1NOTBM-NEXT: .LBB60_2: +; X86-BMI1NOTBM-NEXT: .LBB61_2: ; X86-BMI1NOTBM-NEXT: shll $8, %eax ; X86-BMI1NOTBM-NEXT: bextrl %eax, %edx, %eax ; X86-BMI1NOTBM-NEXT: popl %esi @@ -7862,10 +7995,10 @@ define i32 @bextr64_32_d1(i64 %val, i64 %numskipbits, i32 %numlowbits) nounwind ; X86-BMI1BMI2-NEXT: movl {{[0-9]+}}(%esp), %esi ; X86-BMI1BMI2-NEXT: shrdl %cl, %esi, %edx ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB60_2 +; X86-BMI1BMI2-NEXT: je .LBB61_2 ; X86-BMI1BMI2-NEXT: # %bb.1: ; X86-BMI1BMI2-NEXT: shrxl %ecx, %esi, %edx -; X86-BMI1BMI2-NEXT: .LBB60_2: +; X86-BMI1BMI2-NEXT: .LBB61_2: ; X86-BMI1BMI2-NEXT: bzhil %eax, %edx, %eax ; X86-BMI1BMI2-NEXT: popl %esi ; X86-BMI1BMI2-NEXT: retl diff --git a/test/CodeGen/X86/extract-lowbits.ll b/test/CodeGen/X86/extract-lowbits.ll index 5757d6f6bc5..6564486bd52 100644 --- a/test/CodeGen/X86/extract-lowbits.ll +++ b/test/CodeGen/X86/extract-lowbits.ll @@ -1026,6 +1026,90 @@ define i32 @bzhi64_32_a2(i64 %val, i32 %numlowbits) nounwind { ret i32 %truncmasked } +; Shifting happens in 64-bit. Mask is 32-bit, but calculated in 64-bit. +; Masking is 64-bit. Then truncation. +define i32 @bzhi64_32_a3(i64 %val, i64 %numlowbits) nounwind { +; X86-NOBMI-LABEL: bzhi64_32_a3: +; X86-NOBMI: # %bb.0: +; X86-NOBMI-NEXT: movb {{[0-9]+}}(%esp), %cl +; X86-NOBMI-NEXT: movl $1, %edx +; X86-NOBMI-NEXT: shll %cl, %edx +; X86-NOBMI-NEXT: xorl %eax, %eax +; X86-NOBMI-NEXT: testb $32, %cl +; X86-NOBMI-NEXT: jne .LBB14_2 +; X86-NOBMI-NEXT: # %bb.1: +; X86-NOBMI-NEXT: movl %edx, %eax +; X86-NOBMI-NEXT: .LBB14_2: +; X86-NOBMI-NEXT: decl %eax +; X86-NOBMI-NEXT: andl {{[0-9]+}}(%esp), %eax +; X86-NOBMI-NEXT: retl +; +; X86-BMI1NOTBM-LABEL: bzhi64_32_a3: +; X86-BMI1NOTBM: # %bb.0: +; X86-BMI1NOTBM-NEXT: movb {{[0-9]+}}(%esp), %cl +; X86-BMI1NOTBM-NEXT: movl $1, %edx +; X86-BMI1NOTBM-NEXT: shll %cl, %edx +; X86-BMI1NOTBM-NEXT: xorl %eax, %eax +; X86-BMI1NOTBM-NEXT: testb $32, %cl +; X86-BMI1NOTBM-NEXT: jne .LBB14_2 +; X86-BMI1NOTBM-NEXT: # %bb.1: +; X86-BMI1NOTBM-NEXT: movl %edx, %eax +; X86-BMI1NOTBM-NEXT: .LBB14_2: +; X86-BMI1NOTBM-NEXT: decl %eax +; X86-BMI1NOTBM-NEXT: andl {{[0-9]+}}(%esp), %eax +; X86-BMI1NOTBM-NEXT: retl +; +; X86-BMI1BMI2-LABEL: bzhi64_32_a3: +; X86-BMI1BMI2: # %bb.0: +; X86-BMI1BMI2-NEXT: movb {{[0-9]+}}(%esp), %cl +; X86-BMI1BMI2-NEXT: xorl %eax, %eax +; X86-BMI1BMI2-NEXT: testb $32, %cl +; X86-BMI1BMI2-NEXT: jne .LBB14_2 +; X86-BMI1BMI2-NEXT: # %bb.1: +; X86-BMI1BMI2-NEXT: movl $1, %eax +; X86-BMI1BMI2-NEXT: shlxl %ecx, %eax, %eax +; X86-BMI1BMI2-NEXT: .LBB14_2: +; X86-BMI1BMI2-NEXT: decl %eax +; X86-BMI1BMI2-NEXT: andl {{[0-9]+}}(%esp), %eax +; X86-BMI1BMI2-NEXT: retl +; +; X64-NOBMI-LABEL: bzhi64_32_a3: +; X64-NOBMI: # %bb.0: +; X64-NOBMI-NEXT: movq %rsi, %rcx +; X64-NOBMI-NEXT: movl $1, %eax +; X64-NOBMI-NEXT: # kill: def $cl killed $cl killed $rcx +; X64-NOBMI-NEXT: shlq %cl, %rax +; X64-NOBMI-NEXT: decl %eax +; X64-NOBMI-NEXT: andl %edi, %eax +; X64-NOBMI-NEXT: # kill: def $eax killed $eax killed $rax +; X64-NOBMI-NEXT: retq +; +; X64-BMI1NOTBM-LABEL: bzhi64_32_a3: +; X64-BMI1NOTBM: # %bb.0: +; X64-BMI1NOTBM-NEXT: movq %rsi, %rcx +; X64-BMI1NOTBM-NEXT: movl $1, %eax +; X64-BMI1NOTBM-NEXT: # kill: def $cl killed $cl killed $rcx +; X64-BMI1NOTBM-NEXT: shlq %cl, %rax +; X64-BMI1NOTBM-NEXT: decl %eax +; X64-BMI1NOTBM-NEXT: andl %edi, %eax +; X64-BMI1NOTBM-NEXT: # kill: def $eax killed $eax killed $rax +; X64-BMI1NOTBM-NEXT: retq +; +; X64-BMI1BMI2-LABEL: bzhi64_32_a3: +; X64-BMI1BMI2: # %bb.0: +; X64-BMI1BMI2-NEXT: movl $1, %eax +; X64-BMI1BMI2-NEXT: shlxq %rsi, %rax, %rax +; X64-BMI1BMI2-NEXT: decl %eax +; X64-BMI1BMI2-NEXT: andl %edi, %eax +; X64-BMI1BMI2-NEXT: # kill: def $eax killed $eax killed $rax +; X64-BMI1BMI2-NEXT: retq + %onebit = shl i64 1, %numlowbits + %mask = add nsw i64 %onebit, 4294967295 + %masked = and i64 %mask, %val + %truncmasked = trunc i64 %masked to i32 + ret i32 %truncmasked +} + ; ---------------------------------------------------------------------------- ; ; Pattern b. 32-bit ; ---------------------------------------------------------------------------- ; @@ -1296,11 +1380,11 @@ define i64 @bzhi64_b0(i64 %val, i64 %numlowbits) nounwind { ; X86-NOBMI-NEXT: shll %cl, %eax ; X86-NOBMI-NEXT: shldl %cl, %edx, %edx ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: je .LBB19_2 +; X86-NOBMI-NEXT: je .LBB20_2 ; X86-NOBMI-NEXT: # %bb.1: ; X86-NOBMI-NEXT: movl %eax, %edx ; X86-NOBMI-NEXT: xorl %eax, %eax -; X86-NOBMI-NEXT: .LBB19_2: +; X86-NOBMI-NEXT: .LBB20_2: ; X86-NOBMI-NEXT: notl %edx ; X86-NOBMI-NEXT: notl %eax ; X86-NOBMI-NEXT: andl {{[0-9]+}}(%esp), %edx @@ -1316,11 +1400,11 @@ define i64 @bzhi64_b0(i64 %val, i64 %numlowbits) nounwind { ; X86-BMI1NOTBM-NEXT: shll %cl, %esi ; X86-BMI1NOTBM-NEXT: shldl %cl, %eax, %eax ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: je .LBB19_2 +; X86-BMI1NOTBM-NEXT: je .LBB20_2 ; X86-BMI1NOTBM-NEXT: # %bb.1: ; X86-BMI1NOTBM-NEXT: movl %esi, %eax ; X86-BMI1NOTBM-NEXT: xorl %esi, %esi -; X86-BMI1NOTBM-NEXT: .LBB19_2: +; X86-BMI1NOTBM-NEXT: .LBB20_2: ; X86-BMI1NOTBM-NEXT: andnl {{[0-9]+}}(%esp), %eax, %edx ; X86-BMI1NOTBM-NEXT: andnl {{[0-9]+}}(%esp), %esi, %eax ; X86-BMI1NOTBM-NEXT: popl %esi @@ -1334,11 +1418,11 @@ define i64 @bzhi64_b0(i64 %val, i64 %numlowbits) nounwind { ; X86-BMI1BMI2-NEXT: shlxl %ecx, %eax, %esi ; X86-BMI1BMI2-NEXT: shldl %cl, %eax, %eax ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB19_2 +; X86-BMI1BMI2-NEXT: je .LBB20_2 ; X86-BMI1BMI2-NEXT: # %bb.1: ; X86-BMI1BMI2-NEXT: movl %esi, %eax ; X86-BMI1BMI2-NEXT: xorl %esi, %esi -; X86-BMI1BMI2-NEXT: .LBB19_2: +; X86-BMI1BMI2-NEXT: .LBB20_2: ; X86-BMI1BMI2-NEXT: andnl {{[0-9]+}}(%esp), %eax, %edx ; X86-BMI1BMI2-NEXT: andnl {{[0-9]+}}(%esp), %esi, %eax ; X86-BMI1BMI2-NEXT: popl %esi @@ -1379,11 +1463,11 @@ define i64 @bzhi64_b1_indexzext(i64 %val, i8 zeroext %numlowbits) nounwind { ; X86-NOBMI-NEXT: shll %cl, %eax ; X86-NOBMI-NEXT: shldl %cl, %edx, %edx ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: je .LBB20_2 +; X86-NOBMI-NEXT: je .LBB21_2 ; X86-NOBMI-NEXT: # %bb.1: ; X86-NOBMI-NEXT: movl %eax, %edx ; X86-NOBMI-NEXT: xorl %eax, %eax -; X86-NOBMI-NEXT: .LBB20_2: +; X86-NOBMI-NEXT: .LBB21_2: ; X86-NOBMI-NEXT: notl %edx ; X86-NOBMI-NEXT: notl %eax ; X86-NOBMI-NEXT: andl {{[0-9]+}}(%esp), %edx @@ -1399,11 +1483,11 @@ define i64 @bzhi64_b1_indexzext(i64 %val, i8 zeroext %numlowbits) nounwind { ; X86-BMI1NOTBM-NEXT: shll %cl, %esi ; X86-BMI1NOTBM-NEXT: shldl %cl, %eax, %eax ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: je .LBB20_2 +; X86-BMI1NOTBM-NEXT: je .LBB21_2 ; X86-BMI1NOTBM-NEXT: # %bb.1: ; X86-BMI1NOTBM-NEXT: movl %esi, %eax ; X86-BMI1NOTBM-NEXT: xorl %esi, %esi -; X86-BMI1NOTBM-NEXT: .LBB20_2: +; X86-BMI1NOTBM-NEXT: .LBB21_2: ; X86-BMI1NOTBM-NEXT: andnl {{[0-9]+}}(%esp), %eax, %edx ; X86-BMI1NOTBM-NEXT: andnl {{[0-9]+}}(%esp), %esi, %eax ; X86-BMI1NOTBM-NEXT: popl %esi @@ -1417,11 +1501,11 @@ define i64 @bzhi64_b1_indexzext(i64 %val, i8 zeroext %numlowbits) nounwind { ; X86-BMI1BMI2-NEXT: shlxl %ecx, %eax, %esi ; X86-BMI1BMI2-NEXT: shldl %cl, %eax, %eax ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB20_2 +; X86-BMI1BMI2-NEXT: je .LBB21_2 ; X86-BMI1BMI2-NEXT: # %bb.1: ; X86-BMI1BMI2-NEXT: movl %esi, %eax ; X86-BMI1BMI2-NEXT: xorl %esi, %esi -; X86-BMI1BMI2-NEXT: .LBB20_2: +; X86-BMI1BMI2-NEXT: .LBB21_2: ; X86-BMI1BMI2-NEXT: andnl {{[0-9]+}}(%esp), %eax, %edx ; X86-BMI1BMI2-NEXT: andnl {{[0-9]+}}(%esp), %esi, %eax ; X86-BMI1BMI2-NEXT: popl %esi @@ -1467,11 +1551,11 @@ define i64 @bzhi64_b2_load(i64* %w, i64 %numlowbits) nounwind { ; X86-NOBMI-NEXT: shll %cl, %eax ; X86-NOBMI-NEXT: shldl %cl, %edx, %edx ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: je .LBB21_2 +; X86-NOBMI-NEXT: je .LBB22_2 ; X86-NOBMI-NEXT: # %bb.1: ; X86-NOBMI-NEXT: movl %eax, %edx ; X86-NOBMI-NEXT: xorl %eax, %eax -; X86-NOBMI-NEXT: .LBB21_2: +; X86-NOBMI-NEXT: .LBB22_2: ; X86-NOBMI-NEXT: notl %edx ; X86-NOBMI-NEXT: notl %eax ; X86-NOBMI-NEXT: andl 4(%esi), %edx @@ -1489,11 +1573,11 @@ define i64 @bzhi64_b2_load(i64* %w, i64 %numlowbits) nounwind { ; X86-BMI1NOTBM-NEXT: shll %cl, %esi ; X86-BMI1NOTBM-NEXT: shldl %cl, %edx, %edx ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: je .LBB21_2 +; X86-BMI1NOTBM-NEXT: je .LBB22_2 ; X86-BMI1NOTBM-NEXT: # %bb.1: ; X86-BMI1NOTBM-NEXT: movl %esi, %edx ; X86-BMI1NOTBM-NEXT: xorl %esi, %esi -; X86-BMI1NOTBM-NEXT: .LBB21_2: +; X86-BMI1NOTBM-NEXT: .LBB22_2: ; X86-BMI1NOTBM-NEXT: andnl 4(%eax), %edx, %edx ; X86-BMI1NOTBM-NEXT: andnl (%eax), %esi, %eax ; X86-BMI1NOTBM-NEXT: popl %esi @@ -1508,11 +1592,11 @@ define i64 @bzhi64_b2_load(i64* %w, i64 %numlowbits) nounwind { ; X86-BMI1BMI2-NEXT: shlxl %ecx, %edx, %esi ; X86-BMI1BMI2-NEXT: shldl %cl, %edx, %edx ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB21_2 +; X86-BMI1BMI2-NEXT: je .LBB22_2 ; X86-BMI1BMI2-NEXT: # %bb.1: ; X86-BMI1BMI2-NEXT: movl %esi, %edx ; X86-BMI1BMI2-NEXT: xorl %esi, %esi -; X86-BMI1BMI2-NEXT: .LBB21_2: +; X86-BMI1BMI2-NEXT: .LBB22_2: ; X86-BMI1BMI2-NEXT: andnl 4(%eax), %edx, %edx ; X86-BMI1BMI2-NEXT: andnl (%eax), %esi, %eax ; X86-BMI1BMI2-NEXT: popl %esi @@ -1556,11 +1640,11 @@ define i64 @bzhi64_b3_load_indexzext(i64* %w, i8 zeroext %numlowbits) nounwind { ; X86-NOBMI-NEXT: shll %cl, %eax ; X86-NOBMI-NEXT: shldl %cl, %edx, %edx ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: je .LBB22_2 +; X86-NOBMI-NEXT: je .LBB23_2 ; X86-NOBMI-NEXT: # %bb.1: ; X86-NOBMI-NEXT: movl %eax, %edx ; X86-NOBMI-NEXT: xorl %eax, %eax -; X86-NOBMI-NEXT: .LBB22_2: +; X86-NOBMI-NEXT: .LBB23_2: ; X86-NOBMI-NEXT: notl %edx ; X86-NOBMI-NEXT: notl %eax ; X86-NOBMI-NEXT: andl 4(%esi), %edx @@ -1578,11 +1662,11 @@ define i64 @bzhi64_b3_load_indexzext(i64* %w, i8 zeroext %numlowbits) nounwind { ; X86-BMI1NOTBM-NEXT: shll %cl, %esi ; X86-BMI1NOTBM-NEXT: shldl %cl, %edx, %edx ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: je .LBB22_2 +; X86-BMI1NOTBM-NEXT: je .LBB23_2 ; X86-BMI1NOTBM-NEXT: # %bb.1: ; X86-BMI1NOTBM-NEXT: movl %esi, %edx ; X86-BMI1NOTBM-NEXT: xorl %esi, %esi -; X86-BMI1NOTBM-NEXT: .LBB22_2: +; X86-BMI1NOTBM-NEXT: .LBB23_2: ; X86-BMI1NOTBM-NEXT: andnl 4(%eax), %edx, %edx ; X86-BMI1NOTBM-NEXT: andnl (%eax), %esi, %eax ; X86-BMI1NOTBM-NEXT: popl %esi @@ -1597,11 +1681,11 @@ define i64 @bzhi64_b3_load_indexzext(i64* %w, i8 zeroext %numlowbits) nounwind { ; X86-BMI1BMI2-NEXT: shlxl %ecx, %edx, %esi ; X86-BMI1BMI2-NEXT: shldl %cl, %edx, %edx ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB22_2 +; X86-BMI1BMI2-NEXT: je .LBB23_2 ; X86-BMI1BMI2-NEXT: # %bb.1: ; X86-BMI1BMI2-NEXT: movl %esi, %edx ; X86-BMI1BMI2-NEXT: xorl %esi, %esi -; X86-BMI1BMI2-NEXT: .LBB22_2: +; X86-BMI1BMI2-NEXT: .LBB23_2: ; X86-BMI1BMI2-NEXT: andnl 4(%eax), %edx, %edx ; X86-BMI1BMI2-NEXT: andnl (%eax), %esi, %eax ; X86-BMI1BMI2-NEXT: popl %esi @@ -1646,11 +1730,11 @@ define i64 @bzhi64_b4_commutative(i64 %val, i64 %numlowbits) nounwind { ; X86-NOBMI-NEXT: shll %cl, %eax ; X86-NOBMI-NEXT: shldl %cl, %edx, %edx ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: je .LBB23_2 +; X86-NOBMI-NEXT: je .LBB24_2 ; X86-NOBMI-NEXT: # %bb.1: ; X86-NOBMI-NEXT: movl %eax, %edx ; X86-NOBMI-NEXT: xorl %eax, %eax -; X86-NOBMI-NEXT: .LBB23_2: +; X86-NOBMI-NEXT: .LBB24_2: ; X86-NOBMI-NEXT: notl %edx ; X86-NOBMI-NEXT: notl %eax ; X86-NOBMI-NEXT: andl {{[0-9]+}}(%esp), %edx @@ -1666,11 +1750,11 @@ define i64 @bzhi64_b4_commutative(i64 %val, i64 %numlowbits) nounwind { ; X86-BMI1NOTBM-NEXT: shll %cl, %esi ; X86-BMI1NOTBM-NEXT: shldl %cl, %eax, %eax ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: je .LBB23_2 +; X86-BMI1NOTBM-NEXT: je .LBB24_2 ; X86-BMI1NOTBM-NEXT: # %bb.1: ; X86-BMI1NOTBM-NEXT: movl %esi, %eax ; X86-BMI1NOTBM-NEXT: xorl %esi, %esi -; X86-BMI1NOTBM-NEXT: .LBB23_2: +; X86-BMI1NOTBM-NEXT: .LBB24_2: ; X86-BMI1NOTBM-NEXT: andnl {{[0-9]+}}(%esp), %eax, %edx ; X86-BMI1NOTBM-NEXT: andnl {{[0-9]+}}(%esp), %esi, %eax ; X86-BMI1NOTBM-NEXT: popl %esi @@ -1684,11 +1768,11 @@ define i64 @bzhi64_b4_commutative(i64 %val, i64 %numlowbits) nounwind { ; X86-BMI1BMI2-NEXT: shlxl %ecx, %eax, %esi ; X86-BMI1BMI2-NEXT: shldl %cl, %eax, %eax ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB23_2 +; X86-BMI1BMI2-NEXT: je .LBB24_2 ; X86-BMI1BMI2-NEXT: # %bb.1: ; X86-BMI1BMI2-NEXT: movl %esi, %eax ; X86-BMI1BMI2-NEXT: xorl %esi, %esi -; X86-BMI1BMI2-NEXT: .LBB23_2: +; X86-BMI1BMI2-NEXT: .LBB24_2: ; X86-BMI1BMI2-NEXT: andnl {{[0-9]+}}(%esp), %eax, %edx ; X86-BMI1BMI2-NEXT: andnl {{[0-9]+}}(%esp), %esi, %eax ; X86-BMI1BMI2-NEXT: popl %esi @@ -1731,10 +1815,10 @@ define i32 @bzhi64_32_b0(i64 %val, i8 %numlowbits) nounwind { ; X86-NOBMI-NEXT: shll %cl, %edx ; X86-NOBMI-NEXT: xorl %eax, %eax ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: jne .LBB24_2 +; X86-NOBMI-NEXT: jne .LBB25_2 ; X86-NOBMI-NEXT: # %bb.1: ; X86-NOBMI-NEXT: movl %edx, %eax -; X86-NOBMI-NEXT: .LBB24_2: +; X86-NOBMI-NEXT: .LBB25_2: ; X86-NOBMI-NEXT: notl %eax ; X86-NOBMI-NEXT: andl {{[0-9]+}}(%esp), %eax ; X86-NOBMI-NEXT: retl @@ -1746,10 +1830,10 @@ define i32 @bzhi64_32_b0(i64 %val, i8 %numlowbits) nounwind { ; X86-BMI1NOTBM-NEXT: shll %cl, %eax ; X86-BMI1NOTBM-NEXT: xorl %edx, %edx ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: jne .LBB24_2 +; X86-BMI1NOTBM-NEXT: jne .LBB25_2 ; X86-BMI1NOTBM-NEXT: # %bb.1: ; X86-BMI1NOTBM-NEXT: movl %eax, %edx -; X86-BMI1NOTBM-NEXT: .LBB24_2: +; X86-BMI1NOTBM-NEXT: .LBB25_2: ; X86-BMI1NOTBM-NEXT: andnl {{[0-9]+}}(%esp), %edx, %eax ; X86-BMI1NOTBM-NEXT: retl ; @@ -1758,11 +1842,11 @@ define i32 @bzhi64_32_b0(i64 %val, i8 %numlowbits) nounwind { ; X86-BMI1BMI2-NEXT: movb {{[0-9]+}}(%esp), %al ; X86-BMI1BMI2-NEXT: xorl %ecx, %ecx ; X86-BMI1BMI2-NEXT: testb $32, %al -; X86-BMI1BMI2-NEXT: jne .LBB24_2 +; X86-BMI1BMI2-NEXT: jne .LBB25_2 ; X86-BMI1BMI2-NEXT: # %bb.1: ; X86-BMI1BMI2-NEXT: movl $-1, %ecx ; X86-BMI1BMI2-NEXT: shlxl %eax, %ecx, %ecx -; X86-BMI1BMI2-NEXT: .LBB24_2: +; X86-BMI1BMI2-NEXT: .LBB25_2: ; X86-BMI1BMI2-NEXT: andnl {{[0-9]+}}(%esp), %ecx, %eax ; X86-BMI1BMI2-NEXT: retl ; @@ -1917,10 +2001,10 @@ define i32 @bzhi64_32_b3(i64 %val, i8 %numlowbits) nounwind { ; X86-NOBMI-NEXT: shll %cl, %edx ; X86-NOBMI-NEXT: xorl %eax, %eax ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: jne .LBB27_2 +; X86-NOBMI-NEXT: jne .LBB28_2 ; X86-NOBMI-NEXT: # %bb.1: ; X86-NOBMI-NEXT: movl %edx, %eax -; X86-NOBMI-NEXT: .LBB27_2: +; X86-NOBMI-NEXT: .LBB28_2: ; X86-NOBMI-NEXT: notl %eax ; X86-NOBMI-NEXT: andl {{[0-9]+}}(%esp), %eax ; X86-NOBMI-NEXT: retl @@ -1932,10 +2016,10 @@ define i32 @bzhi64_32_b3(i64 %val, i8 %numlowbits) nounwind { ; X86-BMI1NOTBM-NEXT: shll %cl, %eax ; X86-BMI1NOTBM-NEXT: xorl %edx, %edx ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: jne .LBB27_2 +; X86-BMI1NOTBM-NEXT: jne .LBB28_2 ; X86-BMI1NOTBM-NEXT: # %bb.1: ; X86-BMI1NOTBM-NEXT: movl %eax, %edx -; X86-BMI1NOTBM-NEXT: .LBB27_2: +; X86-BMI1NOTBM-NEXT: .LBB28_2: ; X86-BMI1NOTBM-NEXT: andnl {{[0-9]+}}(%esp), %edx, %eax ; X86-BMI1NOTBM-NEXT: retl ; @@ -1944,11 +2028,11 @@ define i32 @bzhi64_32_b3(i64 %val, i8 %numlowbits) nounwind { ; X86-BMI1BMI2-NEXT: movb {{[0-9]+}}(%esp), %al ; X86-BMI1BMI2-NEXT: xorl %ecx, %ecx ; X86-BMI1BMI2-NEXT: testb $32, %al -; X86-BMI1BMI2-NEXT: jne .LBB27_2 +; X86-BMI1BMI2-NEXT: jne .LBB28_2 ; X86-BMI1BMI2-NEXT: # %bb.1: ; X86-BMI1BMI2-NEXT: movl $-1, %ecx ; X86-BMI1BMI2-NEXT: shlxl %eax, %ecx, %ecx -; X86-BMI1BMI2-NEXT: .LBB27_2: +; X86-BMI1BMI2-NEXT: .LBB28_2: ; X86-BMI1BMI2-NEXT: andnl {{[0-9]+}}(%esp), %ecx, %eax ; X86-BMI1BMI2-NEXT: retl ; @@ -2581,11 +2665,11 @@ define i64 @bzhi64_c0(i64 %val, i64 %numlowbits) nounwind { ; X86-NOBMI-NEXT: shrl %cl, %edi ; X86-NOBMI-NEXT: shrdl %cl, %esi, %esi ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: je .LBB33_2 +; X86-NOBMI-NEXT: je .LBB34_2 ; X86-NOBMI-NEXT: # %bb.1: ; X86-NOBMI-NEXT: movl %edi, %esi ; X86-NOBMI-NEXT: xorl %edi, %edi -; X86-NOBMI-NEXT: .LBB33_2: +; X86-NOBMI-NEXT: .LBB34_2: ; X86-NOBMI-NEXT: subl $8, %esp ; X86-NOBMI-NEXT: pushl %edi ; X86-NOBMI-NEXT: pushl %esi @@ -2612,11 +2696,11 @@ define i64 @bzhi64_c0(i64 %val, i64 %numlowbits) nounwind { ; X86-BMI1NOTBM-NEXT: shrl %cl, %edi ; X86-BMI1NOTBM-NEXT: shrdl %cl, %esi, %esi ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: je .LBB33_2 +; X86-BMI1NOTBM-NEXT: je .LBB34_2 ; X86-BMI1NOTBM-NEXT: # %bb.1: ; X86-BMI1NOTBM-NEXT: movl %edi, %esi ; X86-BMI1NOTBM-NEXT: xorl %edi, %edi -; X86-BMI1NOTBM-NEXT: .LBB33_2: +; X86-BMI1NOTBM-NEXT: .LBB34_2: ; X86-BMI1NOTBM-NEXT: subl $8, %esp ; X86-BMI1NOTBM-NEXT: pushl %edi ; X86-BMI1NOTBM-NEXT: pushl %esi @@ -2642,11 +2726,11 @@ define i64 @bzhi64_c0(i64 %val, i64 %numlowbits) nounwind { ; X86-BMI1BMI2-NEXT: shrxl %ecx, %esi, %edi ; X86-BMI1BMI2-NEXT: shrdl %cl, %esi, %esi ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB33_2 +; X86-BMI1BMI2-NEXT: je .LBB34_2 ; X86-BMI1BMI2-NEXT: # %bb.1: ; X86-BMI1BMI2-NEXT: movl %edi, %esi ; X86-BMI1BMI2-NEXT: xorl %edi, %edi -; X86-BMI1BMI2-NEXT: .LBB33_2: +; X86-BMI1BMI2-NEXT: .LBB34_2: ; X86-BMI1BMI2-NEXT: subl $8, %esp ; X86-BMI1BMI2-NEXT: pushl %edi ; X86-BMI1BMI2-NEXT: pushl %esi @@ -2738,11 +2822,11 @@ define i64 @bzhi64_c1_indexzext(i64 %val, i8 %numlowbits) nounwind { ; X86-NOBMI-NEXT: shrl %cl, %edi ; X86-NOBMI-NEXT: shrdl %cl, %esi, %esi ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: je .LBB34_2 +; X86-NOBMI-NEXT: je .LBB35_2 ; X86-NOBMI-NEXT: # %bb.1: ; X86-NOBMI-NEXT: movl %edi, %esi ; X86-NOBMI-NEXT: xorl %edi, %edi -; X86-NOBMI-NEXT: .LBB34_2: +; X86-NOBMI-NEXT: .LBB35_2: ; X86-NOBMI-NEXT: subl $8, %esp ; X86-NOBMI-NEXT: pushl %edi ; X86-NOBMI-NEXT: pushl %esi @@ -2769,11 +2853,11 @@ define i64 @bzhi64_c1_indexzext(i64 %val, i8 %numlowbits) nounwind { ; X86-BMI1NOTBM-NEXT: shrl %cl, %edi ; X86-BMI1NOTBM-NEXT: shrdl %cl, %esi, %esi ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: je .LBB34_2 +; X86-BMI1NOTBM-NEXT: je .LBB35_2 ; X86-BMI1NOTBM-NEXT: # %bb.1: ; X86-BMI1NOTBM-NEXT: movl %edi, %esi ; X86-BMI1NOTBM-NEXT: xorl %edi, %edi -; X86-BMI1NOTBM-NEXT: .LBB34_2: +; X86-BMI1NOTBM-NEXT: .LBB35_2: ; X86-BMI1NOTBM-NEXT: subl $8, %esp ; X86-BMI1NOTBM-NEXT: pushl %edi ; X86-BMI1NOTBM-NEXT: pushl %esi @@ -2799,11 +2883,11 @@ define i64 @bzhi64_c1_indexzext(i64 %val, i8 %numlowbits) nounwind { ; X86-BMI1BMI2-NEXT: shrxl %ecx, %esi, %edi ; X86-BMI1BMI2-NEXT: shrdl %cl, %esi, %esi ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB34_2 +; X86-BMI1BMI2-NEXT: je .LBB35_2 ; X86-BMI1BMI2-NEXT: # %bb.1: ; X86-BMI1BMI2-NEXT: movl %edi, %esi ; X86-BMI1BMI2-NEXT: xorl %edi, %edi -; X86-BMI1BMI2-NEXT: .LBB34_2: +; X86-BMI1BMI2-NEXT: .LBB35_2: ; X86-BMI1BMI2-NEXT: subl $8, %esp ; X86-BMI1BMI2-NEXT: pushl %edi ; X86-BMI1BMI2-NEXT: pushl %esi @@ -2897,11 +2981,11 @@ define i64 @bzhi64_c2_load(i64* %w, i64 %numlowbits) nounwind { ; X86-NOBMI-NEXT: shrl %cl, %ebx ; X86-NOBMI-NEXT: shrdl %cl, %eax, %eax ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: je .LBB35_2 +; X86-NOBMI-NEXT: je .LBB36_2 ; X86-NOBMI-NEXT: # %bb.1: ; X86-NOBMI-NEXT: movl %ebx, %eax ; X86-NOBMI-NEXT: xorl %ebx, %ebx -; X86-NOBMI-NEXT: .LBB35_2: +; X86-NOBMI-NEXT: .LBB36_2: ; X86-NOBMI-NEXT: movl (%edx), %esi ; X86-NOBMI-NEXT: andl %eax, %esi ; X86-NOBMI-NEXT: movl 4(%edx), %edi @@ -2931,11 +3015,11 @@ define i64 @bzhi64_c2_load(i64* %w, i64 %numlowbits) nounwind { ; X86-BMI1NOTBM-NEXT: shrl %cl, %ebx ; X86-BMI1NOTBM-NEXT: shrdl %cl, %eax, %eax ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: je .LBB35_2 +; X86-BMI1NOTBM-NEXT: je .LBB36_2 ; X86-BMI1NOTBM-NEXT: # %bb.1: ; X86-BMI1NOTBM-NEXT: movl %ebx, %eax ; X86-BMI1NOTBM-NEXT: xorl %ebx, %ebx -; X86-BMI1NOTBM-NEXT: .LBB35_2: +; X86-BMI1NOTBM-NEXT: .LBB36_2: ; X86-BMI1NOTBM-NEXT: movl (%edx), %esi ; X86-BMI1NOTBM-NEXT: andl %eax, %esi ; X86-BMI1NOTBM-NEXT: movl 4(%edx), %edi @@ -2964,11 +3048,11 @@ define i64 @bzhi64_c2_load(i64* %w, i64 %numlowbits) nounwind { ; X86-BMI1BMI2-NEXT: shrxl %ecx, %eax, %ebx ; X86-BMI1BMI2-NEXT: shrdl %cl, %eax, %eax ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB35_2 +; X86-BMI1BMI2-NEXT: je .LBB36_2 ; X86-BMI1BMI2-NEXT: # %bb.1: ; X86-BMI1BMI2-NEXT: movl %ebx, %eax ; X86-BMI1BMI2-NEXT: xorl %ebx, %ebx -; X86-BMI1BMI2-NEXT: .LBB35_2: +; X86-BMI1BMI2-NEXT: .LBB36_2: ; X86-BMI1BMI2-NEXT: movl (%edx), %esi ; X86-BMI1BMI2-NEXT: andl %eax, %esi ; X86-BMI1BMI2-NEXT: movl 4(%edx), %edi @@ -3051,11 +3135,11 @@ define i64 @bzhi64_c3_load_indexzext(i64* %w, i8 %numlowbits) nounwind { ; X86-NOBMI-NEXT: shrl %cl, %ebx ; X86-NOBMI-NEXT: shrdl %cl, %eax, %eax ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: je .LBB36_2 +; X86-NOBMI-NEXT: je .LBB37_2 ; X86-NOBMI-NEXT: # %bb.1: ; X86-NOBMI-NEXT: movl %ebx, %eax ; X86-NOBMI-NEXT: xorl %ebx, %ebx -; X86-NOBMI-NEXT: .LBB36_2: +; X86-NOBMI-NEXT: .LBB37_2: ; X86-NOBMI-NEXT: movl (%edx), %esi ; X86-NOBMI-NEXT: andl %eax, %esi ; X86-NOBMI-NEXT: movl 4(%edx), %edi @@ -3085,11 +3169,11 @@ define i64 @bzhi64_c3_load_indexzext(i64* %w, i8 %numlowbits) nounwind { ; X86-BMI1NOTBM-NEXT: shrl %cl, %ebx ; X86-BMI1NOTBM-NEXT: shrdl %cl, %eax, %eax ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: je .LBB36_2 +; X86-BMI1NOTBM-NEXT: je .LBB37_2 ; X86-BMI1NOTBM-NEXT: # %bb.1: ; X86-BMI1NOTBM-NEXT: movl %ebx, %eax ; X86-BMI1NOTBM-NEXT: xorl %ebx, %ebx -; X86-BMI1NOTBM-NEXT: .LBB36_2: +; X86-BMI1NOTBM-NEXT: .LBB37_2: ; X86-BMI1NOTBM-NEXT: movl (%edx), %esi ; X86-BMI1NOTBM-NEXT: andl %eax, %esi ; X86-BMI1NOTBM-NEXT: movl 4(%edx), %edi @@ -3118,11 +3202,11 @@ define i64 @bzhi64_c3_load_indexzext(i64* %w, i8 %numlowbits) nounwind { ; X86-BMI1BMI2-NEXT: shrxl %ecx, %eax, %ebx ; X86-BMI1BMI2-NEXT: shrdl %cl, %eax, %eax ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB36_2 +; X86-BMI1BMI2-NEXT: je .LBB37_2 ; X86-BMI1BMI2-NEXT: # %bb.1: ; X86-BMI1BMI2-NEXT: movl %ebx, %eax ; X86-BMI1BMI2-NEXT: xorl %ebx, %ebx -; X86-BMI1BMI2-NEXT: .LBB36_2: +; X86-BMI1BMI2-NEXT: .LBB37_2: ; X86-BMI1BMI2-NEXT: movl (%edx), %esi ; X86-BMI1BMI2-NEXT: andl %eax, %esi ; X86-BMI1BMI2-NEXT: movl 4(%edx), %edi @@ -3206,11 +3290,11 @@ define i64 @bzhi64_c4_commutative(i64 %val, i64 %numlowbits) nounwind { ; X86-NOBMI-NEXT: shrl %cl, %edi ; X86-NOBMI-NEXT: shrdl %cl, %esi, %esi ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: je .LBB37_2 +; X86-NOBMI-NEXT: je .LBB38_2 ; X86-NOBMI-NEXT: # %bb.1: ; X86-NOBMI-NEXT: movl %edi, %esi ; X86-NOBMI-NEXT: xorl %edi, %edi -; X86-NOBMI-NEXT: .LBB37_2: +; X86-NOBMI-NEXT: .LBB38_2: ; X86-NOBMI-NEXT: subl $8, %esp ; X86-NOBMI-NEXT: pushl %edi ; X86-NOBMI-NEXT: pushl %esi @@ -3237,11 +3321,11 @@ define i64 @bzhi64_c4_commutative(i64 %val, i64 %numlowbits) nounwind { ; X86-BMI1NOTBM-NEXT: shrl %cl, %edi ; X86-BMI1NOTBM-NEXT: shrdl %cl, %esi, %esi ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: je .LBB37_2 +; X86-BMI1NOTBM-NEXT: je .LBB38_2 ; X86-BMI1NOTBM-NEXT: # %bb.1: ; X86-BMI1NOTBM-NEXT: movl %edi, %esi ; X86-BMI1NOTBM-NEXT: xorl %edi, %edi -; X86-BMI1NOTBM-NEXT: .LBB37_2: +; X86-BMI1NOTBM-NEXT: .LBB38_2: ; X86-BMI1NOTBM-NEXT: subl $8, %esp ; X86-BMI1NOTBM-NEXT: pushl %edi ; X86-BMI1NOTBM-NEXT: pushl %esi @@ -3267,11 +3351,11 @@ define i64 @bzhi64_c4_commutative(i64 %val, i64 %numlowbits) nounwind { ; X86-BMI1BMI2-NEXT: shrxl %ecx, %esi, %edi ; X86-BMI1BMI2-NEXT: shrdl %cl, %esi, %esi ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB37_2 +; X86-BMI1BMI2-NEXT: je .LBB38_2 ; X86-BMI1BMI2-NEXT: # %bb.1: ; X86-BMI1BMI2-NEXT: movl %edi, %esi ; X86-BMI1BMI2-NEXT: xorl %edi, %edi -; X86-BMI1BMI2-NEXT: .LBB37_2: +; X86-BMI1BMI2-NEXT: .LBB38_2: ; X86-BMI1BMI2-NEXT: subl $8, %esp ; X86-BMI1BMI2-NEXT: pushl %edi ; X86-BMI1BMI2-NEXT: pushl %esi @@ -3363,10 +3447,10 @@ define i32 @bzhi64_32_c0(i64 %val, i64 %numlowbits) nounwind { ; X86-NOBMI-NEXT: shrl %cl, %eax ; X86-NOBMI-NEXT: shrdl %cl, %edx, %edx ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: jne .LBB38_2 +; X86-NOBMI-NEXT: jne .LBB39_2 ; X86-NOBMI-NEXT: # %bb.1: ; X86-NOBMI-NEXT: movl %edx, %eax -; X86-NOBMI-NEXT: .LBB38_2: +; X86-NOBMI-NEXT: .LBB39_2: ; X86-NOBMI-NEXT: andl {{[0-9]+}}(%esp), %eax ; X86-NOBMI-NEXT: retl ; @@ -3379,10 +3463,10 @@ define i32 @bzhi64_32_c0(i64 %val, i64 %numlowbits) nounwind { ; X86-BMI1NOTBM-NEXT: shrl %cl, %eax ; X86-BMI1NOTBM-NEXT: shrdl %cl, %edx, %edx ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: jne .LBB38_2 +; X86-BMI1NOTBM-NEXT: jne .LBB39_2 ; X86-BMI1NOTBM-NEXT: # %bb.1: ; X86-BMI1NOTBM-NEXT: movl %edx, %eax -; X86-BMI1NOTBM-NEXT: .LBB38_2: +; X86-BMI1NOTBM-NEXT: .LBB39_2: ; X86-BMI1NOTBM-NEXT: andl {{[0-9]+}}(%esp), %eax ; X86-BMI1NOTBM-NEXT: retl ; @@ -3394,10 +3478,10 @@ define i32 @bzhi64_32_c0(i64 %val, i64 %numlowbits) nounwind { ; X86-BMI1BMI2-NEXT: movl $-1, %eax ; X86-BMI1BMI2-NEXT: shrdl %cl, %eax, %eax ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB38_2 +; X86-BMI1BMI2-NEXT: je .LBB39_2 ; X86-BMI1BMI2-NEXT: # %bb.1: ; X86-BMI1BMI2-NEXT: shrxl %ecx, %edx, %eax -; X86-BMI1BMI2-NEXT: .LBB38_2: +; X86-BMI1BMI2-NEXT: .LBB39_2: ; X86-BMI1BMI2-NEXT: andl {{[0-9]+}}(%esp), %eax ; X86-BMI1BMI2-NEXT: retl ; @@ -3777,26 +3861,26 @@ define i64 @bzhi64_d0(i64 %val, i64 %numlowbits) nounwind { ; X86-NOBMI-NEXT: shldl %cl, %edx, %eax ; X86-NOBMI-NEXT: testb $32, %cl ; X86-NOBMI-NEXT: movl %esi, %edi -; X86-NOBMI-NEXT: jne .LBB45_2 +; X86-NOBMI-NEXT: jne .LBB46_2 ; X86-NOBMI-NEXT: # %bb.1: ; X86-NOBMI-NEXT: movl %eax, %edi -; X86-NOBMI-NEXT: .LBB45_2: +; X86-NOBMI-NEXT: .LBB46_2: ; X86-NOBMI-NEXT: movl %edi, %eax ; X86-NOBMI-NEXT: shrl %cl, %eax ; X86-NOBMI-NEXT: xorl %ebx, %ebx ; X86-NOBMI-NEXT: testb $32, %cl ; X86-NOBMI-NEXT: movl $0, %edx -; X86-NOBMI-NEXT: jne .LBB45_4 +; X86-NOBMI-NEXT: jne .LBB46_4 ; X86-NOBMI-NEXT: # %bb.3: ; X86-NOBMI-NEXT: movl %esi, %ebx ; X86-NOBMI-NEXT: movl %eax, %edx -; X86-NOBMI-NEXT: .LBB45_4: +; X86-NOBMI-NEXT: .LBB46_4: ; X86-NOBMI-NEXT: shrdl %cl, %edi, %ebx ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: jne .LBB45_6 +; X86-NOBMI-NEXT: jne .LBB46_6 ; X86-NOBMI-NEXT: # %bb.5: ; X86-NOBMI-NEXT: movl %ebx, %eax -; X86-NOBMI-NEXT: .LBB45_6: +; X86-NOBMI-NEXT: .LBB46_6: ; X86-NOBMI-NEXT: popl %esi ; X86-NOBMI-NEXT: popl %edi ; X86-NOBMI-NEXT: popl %ebx @@ -3816,26 +3900,26 @@ define i64 @bzhi64_d0(i64 %val, i64 %numlowbits) nounwind { ; X86-BMI1NOTBM-NEXT: shldl %cl, %edx, %eax ; X86-BMI1NOTBM-NEXT: testb $32, %cl ; X86-BMI1NOTBM-NEXT: movl %esi, %edi -; X86-BMI1NOTBM-NEXT: jne .LBB45_2 +; X86-BMI1NOTBM-NEXT: jne .LBB46_2 ; X86-BMI1NOTBM-NEXT: # %bb.1: ; X86-BMI1NOTBM-NEXT: movl %eax, %edi -; X86-BMI1NOTBM-NEXT: .LBB45_2: +; X86-BMI1NOTBM-NEXT: .LBB46_2: ; X86-BMI1NOTBM-NEXT: movl %edi, %eax ; X86-BMI1NOTBM-NEXT: shrl %cl, %eax ; X86-BMI1NOTBM-NEXT: xorl %ebx, %ebx ; X86-BMI1NOTBM-NEXT: testb $32, %cl ; X86-BMI1NOTBM-NEXT: movl $0, %edx -; X86-BMI1NOTBM-NEXT: jne .LBB45_4 +; X86-BMI1NOTBM-NEXT: jne .LBB46_4 ; X86-BMI1NOTBM-NEXT: # %bb.3: ; X86-BMI1NOTBM-NEXT: movl %esi, %ebx ; X86-BMI1NOTBM-NEXT: movl %eax, %edx -; X86-BMI1NOTBM-NEXT: .LBB45_4: +; X86-BMI1NOTBM-NEXT: .LBB46_4: ; X86-BMI1NOTBM-NEXT: shrdl %cl, %edi, %ebx ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: jne .LBB45_6 +; X86-BMI1NOTBM-NEXT: jne .LBB46_6 ; X86-BMI1NOTBM-NEXT: # %bb.5: ; X86-BMI1NOTBM-NEXT: movl %ebx, %eax -; X86-BMI1NOTBM-NEXT: .LBB45_6: +; X86-BMI1NOTBM-NEXT: .LBB46_6: ; X86-BMI1NOTBM-NEXT: popl %esi ; X86-BMI1NOTBM-NEXT: popl %edi ; X86-BMI1NOTBM-NEXT: popl %ebx @@ -3853,22 +3937,22 @@ define i64 @bzhi64_d0(i64 %val, i64 %numlowbits) nounwind { ; X86-BMI1BMI2-NEXT: shlxl %ecx, %eax, %edi ; X86-BMI1BMI2-NEXT: xorl %edx, %edx ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB45_2 +; X86-BMI1BMI2-NEXT: je .LBB46_2 ; X86-BMI1BMI2-NEXT: # %bb.1: ; X86-BMI1BMI2-NEXT: movl %edi, %esi ; X86-BMI1BMI2-NEXT: movl $0, %edi -; X86-BMI1BMI2-NEXT: .LBB45_2: +; X86-BMI1BMI2-NEXT: .LBB46_2: ; X86-BMI1BMI2-NEXT: shrxl %ecx, %esi, %eax -; X86-BMI1BMI2-NEXT: jne .LBB45_4 +; X86-BMI1BMI2-NEXT: jne .LBB46_4 ; X86-BMI1BMI2-NEXT: # %bb.3: ; X86-BMI1BMI2-NEXT: movl %eax, %edx -; X86-BMI1BMI2-NEXT: .LBB45_4: +; X86-BMI1BMI2-NEXT: .LBB46_4: ; X86-BMI1BMI2-NEXT: shrdl %cl, %esi, %edi ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: jne .LBB45_6 +; X86-BMI1BMI2-NEXT: jne .LBB46_6 ; X86-BMI1BMI2-NEXT: # %bb.5: ; X86-BMI1BMI2-NEXT: movl %edi, %eax -; X86-BMI1BMI2-NEXT: .LBB45_6: +; X86-BMI1BMI2-NEXT: .LBB46_6: ; X86-BMI1BMI2-NEXT: popl %esi ; X86-BMI1BMI2-NEXT: popl %edi ; X86-BMI1BMI2-NEXT: retl @@ -3914,26 +3998,26 @@ define i64 @bzhi64_d1_indexzext(i64 %val, i8 %numlowbits) nounwind { ; X86-NOBMI-NEXT: shldl %cl, %edx, %eax ; X86-NOBMI-NEXT: testb $32, %cl ; X86-NOBMI-NEXT: movl %esi, %edi -; X86-NOBMI-NEXT: jne .LBB46_2 +; X86-NOBMI-NEXT: jne .LBB47_2 ; X86-NOBMI-NEXT: # %bb.1: ; X86-NOBMI-NEXT: movl %eax, %edi -; X86-NOBMI-NEXT: .LBB46_2: +; X86-NOBMI-NEXT: .LBB47_2: ; X86-NOBMI-NEXT: movl %edi, %eax ; X86-NOBMI-NEXT: shrl %cl, %eax ; X86-NOBMI-NEXT: xorl %ebx, %ebx ; X86-NOBMI-NEXT: testb $32, %cl ; X86-NOBMI-NEXT: movl $0, %edx -; X86-NOBMI-NEXT: jne .LBB46_4 +; X86-NOBMI-NEXT: jne .LBB47_4 ; X86-NOBMI-NEXT: # %bb.3: ; X86-NOBMI-NEXT: movl %esi, %ebx ; X86-NOBMI-NEXT: movl %eax, %edx -; X86-NOBMI-NEXT: .LBB46_4: +; X86-NOBMI-NEXT: .LBB47_4: ; X86-NOBMI-NEXT: shrdl %cl, %edi, %ebx ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: jne .LBB46_6 +; X86-NOBMI-NEXT: jne .LBB47_6 ; X86-NOBMI-NEXT: # %bb.5: ; X86-NOBMI-NEXT: movl %ebx, %eax -; X86-NOBMI-NEXT: .LBB46_6: +; X86-NOBMI-NEXT: .LBB47_6: ; X86-NOBMI-NEXT: popl %esi ; X86-NOBMI-NEXT: popl %edi ; X86-NOBMI-NEXT: popl %ebx @@ -3953,26 +4037,26 @@ define i64 @bzhi64_d1_indexzext(i64 %val, i8 %numlowbits) nounwind { ; X86-BMI1NOTBM-NEXT: shldl %cl, %edx, %eax ; X86-BMI1NOTBM-NEXT: testb $32, %cl ; X86-BMI1NOTBM-NEXT: movl %esi, %edi -; X86-BMI1NOTBM-NEXT: jne .LBB46_2 +; X86-BMI1NOTBM-NEXT: jne .LBB47_2 ; X86-BMI1NOTBM-NEXT: # %bb.1: ; X86-BMI1NOTBM-NEXT: movl %eax, %edi -; X86-BMI1NOTBM-NEXT: .LBB46_2: +; X86-BMI1NOTBM-NEXT: .LBB47_2: ; X86-BMI1NOTBM-NEXT: movl %edi, %eax ; X86-BMI1NOTBM-NEXT: shrl %cl, %eax ; X86-BMI1NOTBM-NEXT: xorl %ebx, %ebx ; X86-BMI1NOTBM-NEXT: testb $32, %cl ; X86-BMI1NOTBM-NEXT: movl $0, %edx -; X86-BMI1NOTBM-NEXT: jne .LBB46_4 +; X86-BMI1NOTBM-NEXT: jne .LBB47_4 ; X86-BMI1NOTBM-NEXT: # %bb.3: ; X86-BMI1NOTBM-NEXT: movl %esi, %ebx ; X86-BMI1NOTBM-NEXT: movl %eax, %edx -; X86-BMI1NOTBM-NEXT: .LBB46_4: +; X86-BMI1NOTBM-NEXT: .LBB47_4: ; X86-BMI1NOTBM-NEXT: shrdl %cl, %edi, %ebx ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: jne .LBB46_6 +; X86-BMI1NOTBM-NEXT: jne .LBB47_6 ; X86-BMI1NOTBM-NEXT: # %bb.5: ; X86-BMI1NOTBM-NEXT: movl %ebx, %eax -; X86-BMI1NOTBM-NEXT: .LBB46_6: +; X86-BMI1NOTBM-NEXT: .LBB47_6: ; X86-BMI1NOTBM-NEXT: popl %esi ; X86-BMI1NOTBM-NEXT: popl %edi ; X86-BMI1NOTBM-NEXT: popl %ebx @@ -3990,22 +4074,22 @@ define i64 @bzhi64_d1_indexzext(i64 %val, i8 %numlowbits) nounwind { ; X86-BMI1BMI2-NEXT: shlxl %ecx, %eax, %edi ; X86-BMI1BMI2-NEXT: xorl %edx, %edx ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB46_2 +; X86-BMI1BMI2-NEXT: je .LBB47_2 ; X86-BMI1BMI2-NEXT: # %bb.1: ; X86-BMI1BMI2-NEXT: movl %edi, %esi ; X86-BMI1BMI2-NEXT: movl $0, %edi -; X86-BMI1BMI2-NEXT: .LBB46_2: +; X86-BMI1BMI2-NEXT: .LBB47_2: ; X86-BMI1BMI2-NEXT: shrxl %ecx, %esi, %eax -; X86-BMI1BMI2-NEXT: jne .LBB46_4 +; X86-BMI1BMI2-NEXT: jne .LBB47_4 ; X86-BMI1BMI2-NEXT: # %bb.3: ; X86-BMI1BMI2-NEXT: movl %eax, %edx -; X86-BMI1BMI2-NEXT: .LBB46_4: +; X86-BMI1BMI2-NEXT: .LBB47_4: ; X86-BMI1BMI2-NEXT: shrdl %cl, %esi, %edi ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: jne .LBB46_6 +; X86-BMI1BMI2-NEXT: jne .LBB47_6 ; X86-BMI1BMI2-NEXT: # %bb.5: ; X86-BMI1BMI2-NEXT: movl %edi, %eax -; X86-BMI1BMI2-NEXT: .LBB46_6: +; X86-BMI1BMI2-NEXT: .LBB47_6: ; X86-BMI1BMI2-NEXT: popl %esi ; X86-BMI1BMI2-NEXT: popl %edi ; X86-BMI1BMI2-NEXT: retl @@ -4055,26 +4139,26 @@ define i64 @bzhi64_d2_load(i64* %w, i64 %numlowbits) nounwind { ; X86-NOBMI-NEXT: shldl %cl, %edx, %eax ; X86-NOBMI-NEXT: testb $32, %cl ; X86-NOBMI-NEXT: movl %esi, %edi -; X86-NOBMI-NEXT: jne .LBB47_2 +; X86-NOBMI-NEXT: jne .LBB48_2 ; X86-NOBMI-NEXT: # %bb.1: ; X86-NOBMI-NEXT: movl %eax, %edi -; X86-NOBMI-NEXT: .LBB47_2: +; X86-NOBMI-NEXT: .LBB48_2: ; X86-NOBMI-NEXT: movl %edi, %eax ; X86-NOBMI-NEXT: shrl %cl, %eax ; X86-NOBMI-NEXT: xorl %ebx, %ebx ; X86-NOBMI-NEXT: testb $32, %cl ; X86-NOBMI-NEXT: movl $0, %edx -; X86-NOBMI-NEXT: jne .LBB47_4 +; X86-NOBMI-NEXT: jne .LBB48_4 ; X86-NOBMI-NEXT: # %bb.3: ; X86-NOBMI-NEXT: movl %esi, %ebx ; X86-NOBMI-NEXT: movl %eax, %edx -; X86-NOBMI-NEXT: .LBB47_4: +; X86-NOBMI-NEXT: .LBB48_4: ; X86-NOBMI-NEXT: shrdl %cl, %edi, %ebx ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: jne .LBB47_6 +; X86-NOBMI-NEXT: jne .LBB48_6 ; X86-NOBMI-NEXT: # %bb.5: ; X86-NOBMI-NEXT: movl %ebx, %eax -; X86-NOBMI-NEXT: .LBB47_6: +; X86-NOBMI-NEXT: .LBB48_6: ; X86-NOBMI-NEXT: popl %esi ; X86-NOBMI-NEXT: popl %edi ; X86-NOBMI-NEXT: popl %ebx @@ -4095,26 +4179,26 @@ define i64 @bzhi64_d2_load(i64* %w, i64 %numlowbits) nounwind { ; X86-BMI1NOTBM-NEXT: shldl %cl, %edx, %eax ; X86-BMI1NOTBM-NEXT: testb $32, %cl ; X86-BMI1NOTBM-NEXT: movl %esi, %edi -; X86-BMI1NOTBM-NEXT: jne .LBB47_2 +; X86-BMI1NOTBM-NEXT: jne .LBB48_2 ; X86-BMI1NOTBM-NEXT: # %bb.1: ; X86-BMI1NOTBM-NEXT: movl %eax, %edi -; X86-BMI1NOTBM-NEXT: .LBB47_2: +; X86-BMI1NOTBM-NEXT: .LBB48_2: ; X86-BMI1NOTBM-NEXT: movl %edi, %eax ; X86-BMI1NOTBM-NEXT: shrl %cl, %eax ; X86-BMI1NOTBM-NEXT: xorl %ebx, %ebx ; X86-BMI1NOTBM-NEXT: testb $32, %cl ; X86-BMI1NOTBM-NEXT: movl $0, %edx -; X86-BMI1NOTBM-NEXT: jne .LBB47_4 +; X86-BMI1NOTBM-NEXT: jne .LBB48_4 ; X86-BMI1NOTBM-NEXT: # %bb.3: ; X86-BMI1NOTBM-NEXT: movl %esi, %ebx ; X86-BMI1NOTBM-NEXT: movl %eax, %edx -; X86-BMI1NOTBM-NEXT: .LBB47_4: +; X86-BMI1NOTBM-NEXT: .LBB48_4: ; X86-BMI1NOTBM-NEXT: shrdl %cl, %edi, %ebx ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: jne .LBB47_6 +; X86-BMI1NOTBM-NEXT: jne .LBB48_6 ; X86-BMI1NOTBM-NEXT: # %bb.5: ; X86-BMI1NOTBM-NEXT: movl %ebx, %eax -; X86-BMI1NOTBM-NEXT: .LBB47_6: +; X86-BMI1NOTBM-NEXT: .LBB48_6: ; X86-BMI1NOTBM-NEXT: popl %esi ; X86-BMI1NOTBM-NEXT: popl %edi ; X86-BMI1NOTBM-NEXT: popl %ebx @@ -4133,22 +4217,22 @@ define i64 @bzhi64_d2_load(i64* %w, i64 %numlowbits) nounwind { ; X86-BMI1BMI2-NEXT: shlxl %ecx, %edx, %edi ; X86-BMI1BMI2-NEXT: xorl %edx, %edx ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB47_2 +; X86-BMI1BMI2-NEXT: je .LBB48_2 ; X86-BMI1BMI2-NEXT: # %bb.1: ; X86-BMI1BMI2-NEXT: movl %edi, %esi ; X86-BMI1BMI2-NEXT: movl $0, %edi -; X86-BMI1BMI2-NEXT: .LBB47_2: +; X86-BMI1BMI2-NEXT: .LBB48_2: ; X86-BMI1BMI2-NEXT: shrxl %ecx, %esi, %eax -; X86-BMI1BMI2-NEXT: jne .LBB47_4 +; X86-BMI1BMI2-NEXT: jne .LBB48_4 ; X86-BMI1BMI2-NEXT: # %bb.3: ; X86-BMI1BMI2-NEXT: movl %eax, %edx -; X86-BMI1BMI2-NEXT: .LBB47_4: +; X86-BMI1BMI2-NEXT: .LBB48_4: ; X86-BMI1BMI2-NEXT: shrdl %cl, %esi, %edi ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: jne .LBB47_6 +; X86-BMI1BMI2-NEXT: jne .LBB48_6 ; X86-BMI1BMI2-NEXT: # %bb.5: ; X86-BMI1BMI2-NEXT: movl %edi, %eax -; X86-BMI1BMI2-NEXT: .LBB47_6: +; X86-BMI1BMI2-NEXT: .LBB48_6: ; X86-BMI1BMI2-NEXT: popl %esi ; X86-BMI1BMI2-NEXT: popl %edi ; X86-BMI1BMI2-NEXT: retl @@ -4196,26 +4280,26 @@ define i64 @bzhi64_d3_load_indexzext(i64* %w, i8 %numlowbits) nounwind { ; X86-NOBMI-NEXT: shldl %cl, %edx, %eax ; X86-NOBMI-NEXT: testb $32, %cl ; X86-NOBMI-NEXT: movl %esi, %edi -; X86-NOBMI-NEXT: jne .LBB48_2 +; X86-NOBMI-NEXT: jne .LBB49_2 ; X86-NOBMI-NEXT: # %bb.1: ; X86-NOBMI-NEXT: movl %eax, %edi -; X86-NOBMI-NEXT: .LBB48_2: +; X86-NOBMI-NEXT: .LBB49_2: ; X86-NOBMI-NEXT: movl %edi, %eax ; X86-NOBMI-NEXT: shrl %cl, %eax ; X86-NOBMI-NEXT: xorl %ebx, %ebx ; X86-NOBMI-NEXT: testb $32, %cl ; X86-NOBMI-NEXT: movl $0, %edx -; X86-NOBMI-NEXT: jne .LBB48_4 +; X86-NOBMI-NEXT: jne .LBB49_4 ; X86-NOBMI-NEXT: # %bb.3: ; X86-NOBMI-NEXT: movl %esi, %ebx ; X86-NOBMI-NEXT: movl %eax, %edx -; X86-NOBMI-NEXT: .LBB48_4: +; X86-NOBMI-NEXT: .LBB49_4: ; X86-NOBMI-NEXT: shrdl %cl, %edi, %ebx ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: jne .LBB48_6 +; X86-NOBMI-NEXT: jne .LBB49_6 ; X86-NOBMI-NEXT: # %bb.5: ; X86-NOBMI-NEXT: movl %ebx, %eax -; X86-NOBMI-NEXT: .LBB48_6: +; X86-NOBMI-NEXT: .LBB49_6: ; X86-NOBMI-NEXT: popl %esi ; X86-NOBMI-NEXT: popl %edi ; X86-NOBMI-NEXT: popl %ebx @@ -4236,26 +4320,26 @@ define i64 @bzhi64_d3_load_indexzext(i64* %w, i8 %numlowbits) nounwind { ; X86-BMI1NOTBM-NEXT: shldl %cl, %edx, %eax ; X86-BMI1NOTBM-NEXT: testb $32, %cl ; X86-BMI1NOTBM-NEXT: movl %esi, %edi -; X86-BMI1NOTBM-NEXT: jne .LBB48_2 +; X86-BMI1NOTBM-NEXT: jne .LBB49_2 ; X86-BMI1NOTBM-NEXT: # %bb.1: ; X86-BMI1NOTBM-NEXT: movl %eax, %edi -; X86-BMI1NOTBM-NEXT: .LBB48_2: +; X86-BMI1NOTBM-NEXT: .LBB49_2: ; X86-BMI1NOTBM-NEXT: movl %edi, %eax ; X86-BMI1NOTBM-NEXT: shrl %cl, %eax ; X86-BMI1NOTBM-NEXT: xorl %ebx, %ebx ; X86-BMI1NOTBM-NEXT: testb $32, %cl ; X86-BMI1NOTBM-NEXT: movl $0, %edx -; X86-BMI1NOTBM-NEXT: jne .LBB48_4 +; X86-BMI1NOTBM-NEXT: jne .LBB49_4 ; X86-BMI1NOTBM-NEXT: # %bb.3: ; X86-BMI1NOTBM-NEXT: movl %esi, %ebx ; X86-BMI1NOTBM-NEXT: movl %eax, %edx -; X86-BMI1NOTBM-NEXT: .LBB48_4: +; X86-BMI1NOTBM-NEXT: .LBB49_4: ; X86-BMI1NOTBM-NEXT: shrdl %cl, %edi, %ebx ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: jne .LBB48_6 +; X86-BMI1NOTBM-NEXT: jne .LBB49_6 ; X86-BMI1NOTBM-NEXT: # %bb.5: ; X86-BMI1NOTBM-NEXT: movl %ebx, %eax -; X86-BMI1NOTBM-NEXT: .LBB48_6: +; X86-BMI1NOTBM-NEXT: .LBB49_6: ; X86-BMI1NOTBM-NEXT: popl %esi ; X86-BMI1NOTBM-NEXT: popl %edi ; X86-BMI1NOTBM-NEXT: popl %ebx @@ -4274,22 +4358,22 @@ define i64 @bzhi64_d3_load_indexzext(i64* %w, i8 %numlowbits) nounwind { ; X86-BMI1BMI2-NEXT: shlxl %ecx, %edx, %edi ; X86-BMI1BMI2-NEXT: xorl %edx, %edx ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB48_2 +; X86-BMI1BMI2-NEXT: je .LBB49_2 ; X86-BMI1BMI2-NEXT: # %bb.1: ; X86-BMI1BMI2-NEXT: movl %edi, %esi ; X86-BMI1BMI2-NEXT: movl $0, %edi -; X86-BMI1BMI2-NEXT: .LBB48_2: +; X86-BMI1BMI2-NEXT: .LBB49_2: ; X86-BMI1BMI2-NEXT: shrxl %ecx, %esi, %eax -; X86-BMI1BMI2-NEXT: jne .LBB48_4 +; X86-BMI1BMI2-NEXT: jne .LBB49_4 ; X86-BMI1BMI2-NEXT: # %bb.3: ; X86-BMI1BMI2-NEXT: movl %eax, %edx -; X86-BMI1BMI2-NEXT: .LBB48_4: +; X86-BMI1BMI2-NEXT: .LBB49_4: ; X86-BMI1BMI2-NEXT: shrdl %cl, %esi, %edi ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: jne .LBB48_6 +; X86-BMI1BMI2-NEXT: jne .LBB49_6 ; X86-BMI1BMI2-NEXT: # %bb.5: ; X86-BMI1BMI2-NEXT: movl %edi, %eax -; X86-BMI1BMI2-NEXT: .LBB48_6: +; X86-BMI1BMI2-NEXT: .LBB49_6: ; X86-BMI1BMI2-NEXT: popl %esi ; X86-BMI1BMI2-NEXT: popl %edi ; X86-BMI1BMI2-NEXT: retl @@ -4339,18 +4423,18 @@ define i32 @bzhi64_32_d0(i64 %val, i64 %numlowbits) nounwind { ; X86-NOBMI-NEXT: shll %cl, %edx ; X86-NOBMI-NEXT: shldl %cl, %esi, %eax ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: je .LBB49_2 +; X86-NOBMI-NEXT: je .LBB50_2 ; X86-NOBMI-NEXT: # %bb.1: ; X86-NOBMI-NEXT: movl %edx, %eax ; X86-NOBMI-NEXT: xorl %edx, %edx -; X86-NOBMI-NEXT: .LBB49_2: +; X86-NOBMI-NEXT: .LBB50_2: ; X86-NOBMI-NEXT: shrdl %cl, %eax, %edx ; X86-NOBMI-NEXT: shrl %cl, %eax ; X86-NOBMI-NEXT: testb $32, %cl -; X86-NOBMI-NEXT: jne .LBB49_4 +; X86-NOBMI-NEXT: jne .LBB50_4 ; X86-NOBMI-NEXT: # %bb.3: ; X86-NOBMI-NEXT: movl %edx, %eax -; X86-NOBMI-NEXT: .LBB49_4: +; X86-NOBMI-NEXT: .LBB50_4: ; X86-NOBMI-NEXT: popl %esi ; X86-NOBMI-NEXT: retl ; @@ -4365,18 +4449,18 @@ define i32 @bzhi64_32_d0(i64 %val, i64 %numlowbits) nounwind { ; X86-BMI1NOTBM-NEXT: shll %cl, %edx ; X86-BMI1NOTBM-NEXT: shldl %cl, %esi, %eax ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: je .LBB49_2 +; X86-BMI1NOTBM-NEXT: je .LBB50_2 ; X86-BMI1NOTBM-NEXT: # %bb.1: ; X86-BMI1NOTBM-NEXT: movl %edx, %eax ; X86-BMI1NOTBM-NEXT: xorl %edx, %edx -; X86-BMI1NOTBM-NEXT: .LBB49_2: +; X86-BMI1NOTBM-NEXT: .LBB50_2: ; X86-BMI1NOTBM-NEXT: shrdl %cl, %eax, %edx ; X86-BMI1NOTBM-NEXT: shrl %cl, %eax ; X86-BMI1NOTBM-NEXT: testb $32, %cl -; X86-BMI1NOTBM-NEXT: jne .LBB49_4 +; X86-BMI1NOTBM-NEXT: jne .LBB50_4 ; X86-BMI1NOTBM-NEXT: # %bb.3: ; X86-BMI1NOTBM-NEXT: movl %edx, %eax -; X86-BMI1NOTBM-NEXT: .LBB49_4: +; X86-BMI1NOTBM-NEXT: .LBB50_4: ; X86-BMI1NOTBM-NEXT: popl %esi ; X86-BMI1NOTBM-NEXT: retl ; @@ -4389,17 +4473,17 @@ define i32 @bzhi64_32_d0(i64 %val, i64 %numlowbits) nounwind { ; X86-BMI1BMI2-NEXT: shldl %cl, %eax, %edx ; X86-BMI1BMI2-NEXT: shlxl %ecx, %eax, %eax ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB49_2 +; X86-BMI1BMI2-NEXT: je .LBB50_2 ; X86-BMI1BMI2-NEXT: # %bb.1: ; X86-BMI1BMI2-NEXT: movl %eax, %edx ; X86-BMI1BMI2-NEXT: xorl %eax, %eax -; X86-BMI1BMI2-NEXT: .LBB49_2: +; X86-BMI1BMI2-NEXT: .LBB50_2: ; X86-BMI1BMI2-NEXT: shrdl %cl, %edx, %eax ; X86-BMI1BMI2-NEXT: testb $32, %cl -; X86-BMI1BMI2-NEXT: je .LBB49_4 +; X86-BMI1BMI2-NEXT: je .LBB50_4 ; X86-BMI1BMI2-NEXT: # %bb.3: ; X86-BMI1BMI2-NEXT: shrxl %ecx, %edx, %eax -; X86-BMI1BMI2-NEXT: .LBB49_4: +; X86-BMI1BMI2-NEXT: .LBB50_4: ; X86-BMI1BMI2-NEXT: retl ; ; X64-NOBMI-LABEL: bzhi64_32_d0: -- 2.40.0