[llvm] [X86][MC] Support encoding optimization & assembler relaxation about immediate operands for APX instructions (PR #78545)

Jay Foad via llvm-commits llvm-commits at lists.llvm.org
Tue Jan 30 01:58:15 PST 2024


jayfoad wrote:

This is causing:
```
FAIL: LLVM :: CodeGen/X86/popcnt.ll (1 of 1)
******************** TEST 'LLVM :: CodeGen/X86/popcnt.ll' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
RUN: at line 2: /home/jayfoad2/llvm-release/bin/llc < /home/jayfoad2/git/llvm-project/llvm/test/CodeGen/X86/popcnt.ll -mtriple=i686-unknown | /home/jayfoad2/llvm-release/bin/FileCheck /home/jayfoad2/git/llvm-project/llvm/test/CodeGen/X86/popcnt.ll --check-prefixes=X86,X86-NOSSE
+ /home/jayfoad2/llvm-release/bin/llc -mtriple=i686-unknown
+ /home/jayfoad2/llvm-release/bin/FileCheck /home/jayfoad2/git/llvm-project/llvm/test/CodeGen/X86/popcnt.ll --check-prefixes=X86,X86-NOSSE
RUN: at line 3: /home/jayfoad2/llvm-release/bin/llc < /home/jayfoad2/git/llvm-project/llvm/test/CodeGen/X86/popcnt.ll -mtriple=x86_64-unknown | /home/jayfoad2/llvm-release/bin/FileCheck /home/jayfoad2/git/llvm-project/llvm/test/CodeGen/X86/popcnt.ll --check-prefix=X64
+ /home/jayfoad2/llvm-release/bin/llc -mtriple=x86_64-unknown
+ /home/jayfoad2/llvm-release/bin/FileCheck /home/jayfoad2/git/llvm-project/llvm/test/CodeGen/X86/popcnt.ll --check-prefix=X64
RUN: at line 4: /home/jayfoad2/llvm-release/bin/llc < /home/jayfoad2/git/llvm-project/llvm/test/CodeGen/X86/popcnt.ll -mtriple=i686-unknown -mattr=+popcnt | /home/jayfoad2/llvm-release/bin/FileCheck /home/jayfoad2/git/llvm-project/llvm/test/CodeGen/X86/popcnt.ll --check-prefix=X86-POPCNT
+ /home/jayfoad2/llvm-release/bin/llc -mtriple=i686-unknown -mattr=+popcnt
+ /home/jayfoad2/llvm-release/bin/FileCheck /home/jayfoad2/git/llvm-project/llvm/test/CodeGen/X86/popcnt.ll --check-prefix=X86-POPCNT
RUN: at line 5: /home/jayfoad2/llvm-release/bin/llc < /home/jayfoad2/git/llvm-project/llvm/test/CodeGen/X86/popcnt.ll -mtriple=x86_64-unknown -mattr=+popcnt | /home/jayfoad2/llvm-release/bin/FileCheck /home/jayfoad2/git/llvm-project/llvm/test/CodeGen/X86/popcnt.ll --check-prefix=X64-POPCNT
+ /home/jayfoad2/llvm-release/bin/llc -mtriple=x86_64-unknown -mattr=+popcnt
+ /home/jayfoad2/llvm-release/bin/FileCheck /home/jayfoad2/git/llvm-project/llvm/test/CodeGen/X86/popcnt.ll --check-prefix=X64-POPCNT
RUN: at line 6: /home/jayfoad2/llvm-release/bin/llc < /home/jayfoad2/git/llvm-project/llvm/test/CodeGen/X86/popcnt.ll -mtriple=x86_64-unknown -mattr=+ndd | /home/jayfoad2/llvm-release/bin/FileCheck /home/jayfoad2/git/llvm-project/llvm/test/CodeGen/X86/popcnt.ll --check-prefix=X64-NDD
+ /home/jayfoad2/llvm-release/bin/llc -mtriple=x86_64-unknown -mattr=+ndd
+ /home/jayfoad2/llvm-release/bin/FileCheck /home/jayfoad2/git/llvm-project/llvm/test/CodeGen/X86/popcnt.ll --check-prefix=X64-NDD
/home/jayfoad2/git/llvm-project/llvm/test/CodeGen/X86/popcnt.ll:62:17: error: X64-NDD-NEXT: expected string not found in input
; X64-NDD-NEXT: shrb $1, %dil, %al
                ^
<stdin>:7:9: note: scanning from here
# %bb.0:
        ^
<stdin>:8:2: note: possible intended match here
 shrb %dil, %al
 ^
/home/jayfoad2/git/llvm-project/llvm/test/CodeGen/X86/popcnt.ll:139:17: error: X64-NDD-NEXT: expected string not found in input
; X64-NDD-NEXT: shrl $1, %edi, %eax
                ^
<stdin>:26:9: note: scanning from here
# %bb.0:
        ^
<stdin>:27:2: note: possible intended match here
 shrl %edi, %eax
 ^
/home/jayfoad2/git/llvm-project/llvm/test/CodeGen/X86/popcnt.ll:210:17: error: X64-NDD-NEXT: expected string not found in input
; X64-NDD-NEXT: shrl $1, %edi, %eax
                ^
<stdin>:49:9: note: scanning from here
# %bb.0:
        ^
<stdin>:50:2: note: possible intended match here
 shrl %edi, %eax
 ^
/home/jayfoad2/git/llvm-project/llvm/test/CodeGen/X86/popcnt.ll:304:17: error: X64-NDD-NEXT: expected string not found in input
; X64-NDD-NEXT: shrq $1, %rdi, %rax
                ^
<stdin>:70:9: note: scanning from here
# %bb.0:
        ^
<stdin>:71:2: note: possible intended match here
 shrq %rdi, %rax
 ^
/home/jayfoad2/git/llvm-project/llvm/test/CodeGen/X86/popcnt.ll:518:17: error: X64-NDD-NEXT: expected string not found in input
; X64-NDD-NEXT: shrq $1, %rsi, %rax
                ^
<stdin>:95:9: note: scanning from here
# %bb.0:
        ^
<stdin>:96:2: note: possible intended match here
 shrq %rsi, %rax
 ^
/home/jayfoad2/git/llvm-project/llvm/test/CodeGen/X86/popcnt.ll:712:17: error: X64-NDD-NEXT: expected string not found in input
; X64-NDD-NEXT: shrq $1, %rdi, %rax
                ^
<stdin>:134:9: note: scanning from here
# %bb.0:
        ^
<stdin>:135:2: note: possible intended match here
 shrq %rdi, %rax
 ^
/home/jayfoad2/git/llvm-project/llvm/test/CodeGen/X86/popcnt.ll:787:17: error: X64-NDD-NEXT: expected string not found in input
; X64-NDD-NEXT: shrl $1, %edi, %eax
                ^
<stdin>:158:9: note: scanning from here
# %bb.0:
        ^
<stdin>:159:2: note: possible intended match here
 shrl %edi, %eax
 ^
/home/jayfoad2/git/llvm-project/llvm/test/CodeGen/X86/popcnt.ll:891:17: error: X64-NDD-NEXT: expected string not found in input
; X64-NDD-NEXT: shrq $1, %rdi, %rax
                ^
<stdin>:179:9: note: scanning from here
# %bb.0:
        ^
<stdin>:180:2: note: possible intended match here
 shrq %rdi, %rax
 ^
/home/jayfoad2/git/llvm-project/llvm/test/CodeGen/X86/popcnt.ll:1114:17: error: X64-NDD-NEXT: expected string not found in input
; X64-NDD-NEXT: shrq $1, %rsi, %rax
                ^
<stdin>:203:9: note: scanning from here
# %bb.0:
        ^
<stdin>:204:2: note: possible intended match here
 shrq %rsi, %rax
 ^
/home/jayfoad2/git/llvm-project/llvm/test/CodeGen/X86/popcnt.ll:1285:17: error: X64-NDD-NEXT: expected string not found in input
; X64-NDD-NEXT: shrl $1, %edi, %eax
                ^
<stdin>:243:9: note: scanning from here
# %bb.0:
        ^
<stdin>:244:2: note: possible intended match here
 shrl %edi, %eax
 ^
/home/jayfoad2/git/llvm-project/llvm/test/CodeGen/X86/popcnt.ll:1379:17: error: X64-NDD-NEXT: expected string not found in input
; X64-NDD-NEXT: shrq $1, %rdi, %rax
                ^
<stdin>:264:9: note: scanning from here
# %bb.0:
        ^
<stdin>:265:2: note: possible intended match here
 shrq %rdi, %rax
 ^
/home/jayfoad2/git/llvm-project/llvm/test/CodeGen/X86/popcnt.ll:1595:17: error: X64-NDD-NEXT: expected string not found in input
; X64-NDD-NEXT: shrq $1, %rsi, %rax
                ^
<stdin>:289:9: note: scanning from here
# %bb.0:
        ^
<stdin>:290:2: note: possible intended match here
 shrq %rsi, %rax
 ^
/home/jayfoad2/git/llvm-project/llvm/test/CodeGen/X86/popcnt.ll:1767:17: error: X64-NDD-NEXT: expected string not found in input
; X64-NDD-NEXT: shrl $1, %edi, %eax
                ^
<stdin>:330:9: note: scanning from here
# %bb.0:
        ^
<stdin>:331:2: note: possible intended match here
 shrl %edi, %eax
 ^
/home/jayfoad2/git/llvm-project/llvm/test/CodeGen/X86/popcnt.ll:1842:17: error: X64-NDD-NEXT: expected string not found in input
; X64-NDD-NEXT: shrl $1, %edi, %eax
                ^
<stdin>:353:9: note: scanning from here
# %bb.0:
        ^
<stdin>:354:2: note: possible intended match here
 shrl %edi, %eax
 ^

Input file: <stdin>
Check file: /home/jayfoad2/git/llvm-project/llvm/test/CodeGen/X86/popcnt.ll

-dump-input=help explains the following input dump.

Input was:
<<<<<<
             1:  .text 
             2:  .file "<stdin>" 
             3:  .globl cnt8 # -- Begin function cnt8 
             4:  .p2align 4, 0x90 
             5:  .type cnt8, at function 
             6: cnt8: # @cnt8 
             7: # %bb.0: 
next:62'0               X error: no match found
             8:  shrb %dil, %al 
next:62'0       ~~~~~~~~~~~~~~~~
next:62'1        ?               possible intended match
             9:  andb $85, %al 
next:62'0       ~~~~~~~~~~~~~~~
            10:  subb %al, %dil, %al 
next:62'0       ~~~~~~~~~~~~~~~~~~~~~
            11:  andb $51, %al, %cl 
next:62'0       ~~~~~~~~~~~~~~~~~~~~
            12:  shrb $2, %al 
next:62'0       ~~~~~~~~~~~~~~
            13:  andb $51, %al 
next:62'0       ~~~~~~~~~~~~~~~
             .
             .
             .
            21:  # -- End function 
next:62'0       ~~~~~~~~~~~~~~~~~~~
            22:  .globl cnt16 # -- Begin function cnt16 
next:62'0       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            23:  .p2align 4, 0x90 
next:62'0       ~~~~~~~~~~~~~~~~~~
            24:  .type cnt16, at function 
next:62'0       ~~~~~~~~~~~~~~~~~~~~~~~
            25: cnt16: # @cnt16 
next:62'0       ~~~~~~
            26: # %bb.0: 
next:139'0              X error: no match found
            27:  shrl %edi, %eax 
next:139'0      ~~~~~~~~~~~~~~~~~
next:139'1       ?                possible intended match
            28:  andl $21845, %eax # imm = 0x5555 
next:139'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            29:  subl %eax, %edi, %eax 
next:139'0      ~~~~~~~~~~~~~~~~~~~~~~~
            30:  andl $13107, %eax, %ecx # imm = 0x3333 
next:139'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            31:  shrl $2, %eax 
next:139'0      ~~~~~~~~~~~~~~~
            32:  andl $13107, %eax # imm = 0x3333 
next:139'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
             .
             .
             .
            44:  # -- End function 
next:139'0      ~~~~~~~~~~~~~~~~~~~
            45:  .globl cnt32 # -- Begin function cnt32 
next:139'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            46:  .p2align 4, 0x90 
next:139'0      ~~~~~~~~~~~~~~~~~~
            47:  .type cnt32, at function 
next:139'0      ~~~~~~~~~~~~~~~~~~~~~~~
            48: cnt32: # @cnt32 
next:139'0      ~~~~~~
            49: # %bb.0: 
next:210'0              X error: no match found
            50:  shrl %edi, %eax 
next:210'0      ~~~~~~~~~~~~~~~~~
next:210'1       ?                possible intended match
            51:  andl $1431655765, %eax # imm = 0x55555555 
next:210'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            52:  subl %eax, %edi, %eax 
next:210'0      ~~~~~~~~~~~~~~~~~~~~~~~
            53:  andl $858993459, %eax, %ecx # imm = 0x33333333 
next:210'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            54:  shrl $2, %eax 
next:210'0      ~~~~~~~~~~~~~~~
            55:  andl $858993459, %eax # imm = 0x33333333 
next:210'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
             .
             .
             .
            65:  # -- End function 
next:210'0      ~~~~~~~~~~~~~~~~~~~
            66:  .globl cnt64 # -- Begin function cnt64 
next:210'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            67:  .p2align 4, 0x90 
next:210'0      ~~~~~~~~~~~~~~~~~~
            68:  .type cnt64, at function 
next:210'0      ~~~~~~~~~~~~~~~~~~~~~~~
            69: cnt64: # @cnt64 
next:210'0      ~~~~~~
            70: # %bb.0: 
next:304'0              X error: no match found
            71:  shrq %rdi, %rax 
next:304'0      ~~~~~~~~~~~~~~~~~
next:304'1       ?                possible intended match
            72:  movabsq $6148914691236517205, %rcx # imm = 0x5555555555555555 
next:304'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            73:  andq %rcx, %rax 
next:304'0      ~~~~~~~~~~~~~~~~~
            74:  subq %rax, %rdi, %rax 
next:304'0      ~~~~~~~~~~~~~~~~~~~~~~~
            75:  movabsq $3689348814741910323, %rcx # imm = 0x3333333333333333 
next:304'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            76:  andq %rcx, %rax, %rdx 
next:304'0      ~~~~~~~~~~~~~~~~~~~~~~~
             .
             .
             .
            90:  # -- End function 
next:304'0      ~~~~~~~~~~~~~~~~~~~
            91:  .globl cnt128 # -- Begin function cnt128 
next:304'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            92:  .p2align 4, 0x90 
next:304'0      ~~~~~~~~~~~~~~~~~~
            93:  .type cnt128, at function 
next:304'0      ~~~~~~~~~~~~~~~~~~~~~~~~
            94: cnt128: # @cnt128 
next:304'0      ~~~~~~~
            95: # %bb.0: 
next:518'0              X error: no match found
            96:  shrq %rsi, %rax 
next:518'0      ~~~~~~~~~~~~~~~~~
next:518'1       ?                possible intended match
            97:  movabsq $6148914691236517205, %rcx # imm = 0x5555555555555555 
next:518'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            98:  andq %rcx, %rax 
next:518'0      ~~~~~~~~~~~~~~~~~
            99:  subq %rax, %rsi, %rax 
next:518'0      ~~~~~~~~~~~~~~~~~~~~~~~
           100:  movabsq $3689348814741910323, %rdx # imm = 0x3333333333333333 
next:518'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           101:  andq %rdx, %rax, %rsi 
next:518'0      ~~~~~~~~~~~~~~~~~~~~~~~
             .
             .
             .
           129:  # -- End function 
next:518'0      ~~~~~~~~~~~~~~~~~~~
           130:  .globl cnt64_noimplicitfloat # -- Begin function cnt64_noimplicitfloat 
next:518'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           131:  .p2align 4, 0x90 
next:518'0      ~~~~~~~~~~~~~~~~~~
           132:  .type cnt64_noimplicitfloat, at function 
next:518'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           133: cnt64_noimplicitfloat: # @cnt64_noimplicitfloat 
next:518'0      ~~~~~~~~~~~~~~~~~~~~~~
           134: # %bb.0: 
next:712'0              X error: no match found
           135:  shrq %rdi, %rax 
next:712'0      ~~~~~~~~~~~~~~~~~
next:712'1       ?                possible intended match
           136:  movabsq $6148914691236517205, %rcx # imm = 0x5555555555555555 
next:712'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           137:  andq %rcx, %rax 
next:712'0      ~~~~~~~~~~~~~~~~~
           138:  subq %rax, %rdi, %rax 
next:712'0      ~~~~~~~~~~~~~~~~~~~~~~~
           139:  movabsq $3689348814741910323, %rcx # imm = 0x3333333333333333 
next:712'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           140:  andq %rcx, %rax, %rdx 
next:712'0      ~~~~~~~~~~~~~~~~~~~~~~~
             .
             .
             .
           153:  .size cnt64_noimplicitfloat, .Lfunc_end5-cnt64_noimplicitfloat 
next:712'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           154:  # -- End function 
next:712'0      ~~~~~~~~~~~~~~~~~~~
           155:  .globl cnt32_optsize # -- Begin function cnt32_optsize 
next:712'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           156:  .type cnt32_optsize, at function 
next:712'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           157: cnt32_optsize: # @cnt32_optsize 
next:712'0      ~~~~~~~~~~~~~~
           158: # %bb.0: 
next:787'0              X error: no match found
           159:  shrl %edi, %eax 
next:787'0      ~~~~~~~~~~~~~~~~~
next:787'1       ?                possible intended match
           160:  andl $1431655765, %eax # imm = 0x55555555 
next:787'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           161:  subl %eax, %edi, %eax 
next:787'0      ~~~~~~~~~~~~~~~~~~~~~~~
           162:  movl $858993459, %ecx # imm = 0x33333333 
next:787'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           163:  andl %ecx, %eax, %edx 
next:787'0      ~~~~~~~~~~~~~~~~~~~~~~~
           164:  shrl $2, %eax 
next:787'0      ~~~~~~~~~~~~~~~
             .
             .
             .
           174:  .size cnt32_optsize, .Lfunc_end6-cnt32_optsize 
next:787'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           175:  # -- End function 
next:787'0      ~~~~~~~~~~~~~~~~~~~
           176:  .globl cnt64_optsize # -- Begin function cnt64_optsize 
next:787'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           177:  .type cnt64_optsize, at function 
next:787'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           178: cnt64_optsize: # @cnt64_optsize 
next:787'0      ~~~~~~~~~~~~~~
           179: # %bb.0: 
next:891'0              X error: no match found
           180:  shrq %rdi, %rax 
next:891'0      ~~~~~~~~~~~~~~~~~
next:891'1       ?                possible intended match
           181:  movabsq $6148914691236517205, %rcx # imm = 0x5555555555555555 
next:891'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           182:  andq %rcx, %rax 
next:891'0      ~~~~~~~~~~~~~~~~~
           183:  subq %rax, %rdi, %rax 
next:891'0      ~~~~~~~~~~~~~~~~~~~~~~~
           184:  movabsq $3689348814741910323, %rcx # imm = 0x3333333333333333 
next:891'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           185:  andq %rcx, %rax, %rdx 
next:891'0      ~~~~~~~~~~~~~~~~~~~~~~~
             .
             .
             .
           198:  .size cnt64_optsize, .Lfunc_end7-cnt64_optsize 
next:891'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           199:  # -- End function 
next:891'0      ~~~~~~~~~~~~~~~~~~~
           200:  .globl cnt128_optsize # -- Begin function cnt128_optsize 
next:891'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           201:  .type cnt128_optsize, at function 
next:891'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           202: cnt128_optsize: # @cnt128_optsize 
next:891'0      ~~~~~~~~~~~~~~~
           203: # %bb.0: 
next:1114'0             X error: no match found
           204:  shrq %rsi, %rax 
next:1114'0     ~~~~~~~~~~~~~~~~~
next:1114'1      ?                possible intended match
           205:  movabsq $6148914691236517205, %rcx # imm = 0x5555555555555555 
next:1114'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           206:  andq %rcx, %rax 
next:1114'0     ~~~~~~~~~~~~~~~~~
           207:  subq %rax, %rsi, %rax 
next:1114'0     ~~~~~~~~~~~~~~~~~~~~~~~
           208:  movabsq $3689348814741910323, %rdx # imm = 0x3333333333333333 
next:1114'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           209:  andq %rdx, %rax, %rsi 
next:1114'0     ~~~~~~~~~~~~~~~~~~~~~~~
             .
             .
             .
           238:  .section .text.unlikely.,"ax", at progbits 
next:1114'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           239:  .globl cnt32_pgso # -- Begin function cnt32_pgso 
next:1114'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           240:  .p2align 4, 0x90 
next:1114'0     ~~~~~~~~~~~~~~~~~~
           241:  .type cnt32_pgso, at function 
next:1114'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           242: cnt32_pgso: # @cnt32_pgso 
next:1114'0     ~~~~~~~~~~~
           243: # %bb.0: 
next:1285'0             X error: no match found
           244:  shrl %edi, %eax 
next:1285'0     ~~~~~~~~~~~~~~~~~
next:1285'1      ?                possible intended match
           245:  andl $1431655765, %eax # imm = 0x55555555 
next:1285'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           246:  subl %eax, %edi, %eax 
next:1285'0     ~~~~~~~~~~~~~~~~~~~~~~~
           247:  andl $858993459, %eax, %ecx # imm = 0x33333333 
next:1285'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           248:  shrl $2, %eax 
next:1285'0     ~~~~~~~~~~~~~~~
           249:  andl $858993459, %eax # imm = 0x33333333 
next:1285'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
             .
             .
             .
           259:  # -- End function 
next:1285'0     ~~~~~~~~~~~~~~~~~~~
           260:  .globl cnt64_pgso # -- Begin function cnt64_pgso 
next:1285'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           261:  .p2align 4, 0x90 
next:1285'0     ~~~~~~~~~~~~~~~~~~
           262:  .type cnt64_pgso, at function 
next:1285'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           263: cnt64_pgso: # @cnt64_pgso 
next:1285'0     ~~~~~~~~~~~
           264: # %bb.0: 
next:1379'0             X error: no match found
           265:  shrq %rdi, %rax 
next:1379'0     ~~~~~~~~~~~~~~~~~
next:1379'1      ?                possible intended match
           266:  movabsq $6148914691236517205, %rcx # imm = 0x5555555555555555 
next:1379'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           267:  andq %rcx, %rax 
next:1379'0     ~~~~~~~~~~~~~~~~~
           268:  subq %rax, %rdi, %rax 
next:1379'0     ~~~~~~~~~~~~~~~~~~~~~~~
           269:  movabsq $3689348814741910323, %rcx # imm = 0x3333333333333333 
next:1379'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           270:  andq %rcx, %rax, %rdx 
next:1379'0     ~~~~~~~~~~~~~~~~~~~~~~~
             .
             .
             .
           284:  # -- End function 
next:1379'0     ~~~~~~~~~~~~~~~~~~~
           285:  .globl cnt128_pgso # -- Begin function cnt128_pgso 
next:1379'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           286:  .p2align 4, 0x90 
next:1379'0     ~~~~~~~~~~~~~~~~~~
           287:  .type cnt128_pgso, at function 
next:1379'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           288: cnt128_pgso: # @cnt128_pgso 
next:1379'0     ~~~~~~~~~~~~
           289: # %bb.0: 
next:1595'0             X error: no match found
           290:  shrq %rsi, %rax 
next:1595'0     ~~~~~~~~~~~~~~~~~
next:1595'1      ?                possible intended match
           291:  movabsq $6148914691236517205, %rcx # imm = 0x5555555555555555 
next:1595'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           292:  andq %rcx, %rax 
next:1595'0     ~~~~~~~~~~~~~~~~~
           293:  subq %rax, %rsi, %rax 
next:1595'0     ~~~~~~~~~~~~~~~~~~~~~~~
           294:  movabsq $3689348814741910323, %rdx # imm = 0x3333333333333333 
next:1595'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           295:  andq %rdx, %rax, %rsi 
next:1595'0     ~~~~~~~~~~~~~~~~~~~~~~~
             .
             .
             .
           325:  .globl popcount_zext_i32 # -- Begin function popcount_zext_i32 
next:1595'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           326:  .p2align 4, 0x90 
next:1595'0     ~~~~~~~~~~~~~~~~~~
           327:  .type popcount_zext_i32, at function 
next:1595'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           328: popcount_zext_i32: # @popcount_zext_i32 
next:1595'0     ~~~~~~~~~~~~~~~~~~
           329:  .cfi_startproc 
           330: # %bb.0: 
next:1767'0             X error: no match found
           331:  shrl %edi, %eax 
next:1767'0     ~~~~~~~~~~~~~~~~~
next:1767'1      ?                possible intended match
           332:  andl $21845, %eax # imm = 0x5555 
next:1767'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           333:  subl %eax, %edi, %eax 
next:1767'0     ~~~~~~~~~~~~~~~~~~~~~~~
           334:  andl $858993459, %eax, %ecx # imm = 0x33333333 
next:1767'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           335:  shrl $2, %eax 
next:1767'0     ~~~~~~~~~~~~~~~
           336:  andl $858993459, %eax # imm = 0x33333333 
next:1767'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
             .
             .
             .
           348:  .globl popcount_i16_zext # -- Begin function popcount_i16_zext 
next:1767'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           349:  .p2align 4, 0x90 
next:1767'0     ~~~~~~~~~~~~~~~~~~
           350:  .type popcount_i16_zext, at function 
next:1767'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           351: popcount_i16_zext: # @popcount_i16_zext 
next:1767'0     ~~~~~~~~~~~~~~~~~~
           352:  .cfi_startproc 
           353: # %bb.0: 
next:1842'0             X error: no match found
           354:  shrl %edi, %eax 
next:1842'0     ~~~~~~~~~~~~~~~~~
next:1842'1      ?                possible intended match
           355:  andl $21845, %eax # imm = 0x5555 
next:1842'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           356:  subl %eax, %edi, %eax 
next:1842'0     ~~~~~~~~~~~~~~~~~~~~~~~
           357:  andl $13107, %eax, %ecx # imm = 0x3333 
next:1842'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           358:  shrl $2, %eax 
next:1842'0     ~~~~~~~~~~~~~~~
           359:  andl $13107, %eax # imm = 0x3333 
next:1842'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
             .
             .
             .
>>>>>>

--

********************
********************
Failed Tests (1):
  LLVM :: CodeGen/X86/popcnt.ll
```

https://github.com/llvm/llvm-project/pull/78545


More information about the llvm-commits mailing list