[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