Skip to content

Commit 5910e34

Browse files
authored
[X86][MC] Support encoding optimization & assembler relaxation about immediate operands for APX instructions (#78545)
Encoding optimization: ``` mi/mi32 -> mi8 ri/ri32 -> ri8 ``` if the immediate operand is 8-bit wide. Assembler relaxation: ``` mi8 -> mi/mi32 ri8 -> ri/ri32 ``` If the immediate operand is a symbol expression and it's value is unknown.
1 parent a12390e commit 5910e34

28 files changed

+1024
-141
lines changed

llvm/lib/Target/X86/MCTargetDesc/X86EncodingOptimization.cpp

Lines changed: 31 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,12 @@ bool X86::optimizeShiftRotateWithImmediateOne(MCInst &MI) {
106106
#define TO_IMM1(FROM) \
107107
case X86::FROM##i: \
108108
NewOpc = X86::FROM##1; \
109+
break; \
110+
case X86::FROM##i_EVEX: \
111+
NewOpc = X86::FROM##1_EVEX; \
112+
break; \
113+
case X86::FROM##i_ND: \
114+
NewOpc = X86::FROM##1_ND; \
109115
break;
110116
switch (MI.getOpcode()) {
111117
default:
@@ -118,6 +124,31 @@ bool X86::optimizeShiftRotateWithImmediateOne(MCInst &MI) {
118124
TO_IMM1(RCL16r)
119125
TO_IMM1(RCL32r)
120126
TO_IMM1(RCL64r)
127+
TO_IMM1(RCR8m)
128+
TO_IMM1(RCR16m)
129+
TO_IMM1(RCR32m)
130+
TO_IMM1(RCR64m)
131+
TO_IMM1(RCL8m)
132+
TO_IMM1(RCL16m)
133+
TO_IMM1(RCL32m)
134+
TO_IMM1(RCL64m)
135+
#undef TO_IMM1
136+
#define TO_IMM1(FROM) \
137+
case X86::FROM##i: \
138+
NewOpc = X86::FROM##1; \
139+
break; \
140+
case X86::FROM##i_EVEX: \
141+
NewOpc = X86::FROM##1_EVEX; \
142+
break; \
143+
case X86::FROM##i_NF: \
144+
NewOpc = X86::FROM##1_NF; \
145+
break; \
146+
case X86::FROM##i_ND: \
147+
NewOpc = X86::FROM##1_ND; \
148+
break; \
149+
case X86::FROM##i_NF_ND: \
150+
NewOpc = X86::FROM##1_NF_ND; \
151+
break;
121152
TO_IMM1(ROR8r)
122153
TO_IMM1(ROR16r)
123154
TO_IMM1(ROR32r)
@@ -138,14 +169,6 @@ bool X86::optimizeShiftRotateWithImmediateOne(MCInst &MI) {
138169
TO_IMM1(SHL16r)
139170
TO_IMM1(SHL32r)
140171
TO_IMM1(SHL64r)
141-
TO_IMM1(RCR8m)
142-
TO_IMM1(RCR16m)
143-
TO_IMM1(RCR32m)
144-
TO_IMM1(RCR64m)
145-
TO_IMM1(RCL8m)
146-
TO_IMM1(RCL16m)
147-
TO_IMM1(RCL32m)
148-
TO_IMM1(RCL64m)
149172
TO_IMM1(ROR8m)
150173
TO_IMM1(ROR16m)
151174
TO_IMM1(ROR32m)

llvm/lib/Target/X86/MCTargetDesc/X86EncodingOptimizationForImmediate.def

Lines changed: 65 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -12,61 +12,78 @@
1212
#ifndef ENTRY
1313
#define ENTRY(LONG, SHORT)
1414
#endif
15-
ENTRY(ADC16mi, ADC16mi8)
16-
ENTRY(ADC16ri, ADC16ri8)
17-
ENTRY(ADC32mi, ADC32mi8)
18-
ENTRY(ADC32ri, ADC32ri8)
19-
ENTRY(ADC64mi32, ADC64mi8)
20-
ENTRY(ADC64ri32, ADC64ri8)
21-
ENTRY(SBB16mi, SBB16mi8)
22-
ENTRY(SBB16ri, SBB16ri8)
23-
ENTRY(SBB32mi, SBB32mi8)
24-
ENTRY(SBB32ri, SBB32ri8)
25-
ENTRY(SBB64mi32, SBB64mi8)
26-
ENTRY(SBB64ri32, SBB64ri8)
27-
ENTRY(ADD16mi, ADD16mi8)
28-
ENTRY(ADD16ri, ADD16ri8)
29-
ENTRY(ADD32mi, ADD32mi8)
30-
ENTRY(ADD32ri, ADD32ri8)
31-
ENTRY(ADD64mi32, ADD64mi8)
32-
ENTRY(ADD64ri32, ADD64ri8)
33-
ENTRY(AND16mi, AND16mi8)
34-
ENTRY(AND16ri, AND16ri8)
35-
ENTRY(AND32mi, AND32mi8)
36-
ENTRY(AND32ri, AND32ri8)
37-
ENTRY(AND64mi32, AND64mi8)
38-
ENTRY(AND64ri32, AND64ri8)
39-
ENTRY(OR16mi, OR16mi8)
40-
ENTRY(OR16ri, OR16ri8)
41-
ENTRY(OR32mi, OR32mi8)
42-
ENTRY(OR32ri, OR32ri8)
43-
ENTRY(OR64mi32, OR64mi8)
44-
ENTRY(OR64ri32, OR64ri8)
45-
ENTRY(SUB16mi, SUB16mi8)
46-
ENTRY(SUB16ri, SUB16ri8)
47-
ENTRY(SUB32mi, SUB32mi8)
48-
ENTRY(SUB32ri, SUB32ri8)
49-
ENTRY(SUB64mi32, SUB64mi8)
50-
ENTRY(SUB64ri32, SUB64ri8)
51-
ENTRY(XOR16mi, XOR16mi8)
52-
ENTRY(XOR16ri, XOR16ri8)
53-
ENTRY(XOR32mi, XOR32mi8)
54-
ENTRY(XOR32ri, XOR32ri8)
55-
ENTRY(XOR64mi32, XOR64mi8)
56-
ENTRY(XOR64ri32, XOR64ri8)
5715
ENTRY(CMP16mi, CMP16mi8)
5816
ENTRY(CMP16ri, CMP16ri8)
5917
ENTRY(CMP32mi, CMP32mi8)
6018
ENTRY(CMP32ri, CMP32ri8)
6119
ENTRY(CMP64mi32, CMP64mi8)
6220
ENTRY(CMP64ri32, CMP64ri8)
63-
ENTRY(IMUL16rmi, IMUL16rmi8)
64-
ENTRY(IMUL16rri, IMUL16rri8)
65-
ENTRY(IMUL32rmi, IMUL32rmi8)
66-
ENTRY(IMUL32rri, IMUL32rri8)
67-
ENTRY(IMUL64rmi32, IMUL64rmi8)
68-
ENTRY(IMUL64rri32, IMUL64rri8)
6921
ENTRY(PUSH16i, PUSH16i8)
7022
ENTRY(PUSH32i, PUSH32i8)
7123
ENTRY(PUSH64i32, PUSH64i8)
24+
#define ENTRYS(LONG, SHORT) \
25+
ENTRY(LONG, SHORT) \
26+
ENTRY(LONG##_EVEX, SHORT##_EVEX) \
27+
ENTRY(LONG##_NF, SHORT##_NF) \
28+
ENTRY(LONG##_ND, SHORT##_ND) \
29+
ENTRY(LONG##_NF_ND, SHORT##_NF_ND)
30+
ENTRYS(ADD16mi, ADD16mi8)
31+
ENTRYS(ADD16ri, ADD16ri8)
32+
ENTRYS(ADD32mi, ADD32mi8)
33+
ENTRYS(ADD32ri, ADD32ri8)
34+
ENTRYS(ADD64mi32, ADD64mi8)
35+
ENTRYS(ADD64ri32, ADD64ri8)
36+
ENTRYS(AND16mi, AND16mi8)
37+
ENTRYS(AND16ri, AND16ri8)
38+
ENTRYS(AND32mi, AND32mi8)
39+
ENTRYS(AND32ri, AND32ri8)
40+
ENTRYS(AND64mi32, AND64mi8)
41+
ENTRYS(AND64ri32, AND64ri8)
42+
ENTRYS(OR16mi, OR16mi8)
43+
ENTRYS(OR16ri, OR16ri8)
44+
ENTRYS(OR32mi, OR32mi8)
45+
ENTRYS(OR32ri, OR32ri8)
46+
ENTRYS(OR64mi32, OR64mi8)
47+
ENTRYS(OR64ri32, OR64ri8)
48+
ENTRYS(SUB16mi, SUB16mi8)
49+
ENTRYS(SUB16ri, SUB16ri8)
50+
ENTRYS(SUB32mi, SUB32mi8)
51+
ENTRYS(SUB32ri, SUB32ri8)
52+
ENTRYS(SUB64mi32, SUB64mi8)
53+
ENTRYS(SUB64ri32, SUB64ri8)
54+
ENTRYS(XOR16mi, XOR16mi8)
55+
ENTRYS(XOR16ri, XOR16ri8)
56+
ENTRYS(XOR32mi, XOR32mi8)
57+
ENTRYS(XOR32ri, XOR32ri8)
58+
ENTRYS(XOR64mi32, XOR64mi8)
59+
ENTRYS(XOR64ri32, XOR64ri8)
60+
#undef ENTRYS
61+
#define ENTRYS(LONG, SHORT) \
62+
ENTRY(LONG, SHORT) \
63+
ENTRY(LONG##_EVEX, SHORT##_EVEX) \
64+
ENTRY(LONG##_NF, SHORT##_NF)
65+
ENTRYS(IMUL16rmi, IMUL16rmi8)
66+
ENTRYS(IMUL16rri, IMUL16rri8)
67+
ENTRYS(IMUL32rmi, IMUL32rmi8)
68+
ENTRYS(IMUL32rri, IMUL32rri8)
69+
ENTRYS(IMUL64rmi32, IMUL64rmi8)
70+
ENTRYS(IMUL64rri32, IMUL64rri8)
71+
#undef ENTRYS
72+
#define ENTRYS(LONG, SHORT) \
73+
ENTRY(LONG, SHORT) \
74+
ENTRY(LONG##_EVEX, SHORT##_EVEX) \
75+
ENTRY(LONG##_ND, SHORT##_ND)
76+
ENTRYS(ADC16mi, ADC16mi8)
77+
ENTRYS(ADC16ri, ADC16ri8)
78+
ENTRYS(ADC32mi, ADC32mi8)
79+
ENTRYS(ADC32ri, ADC32ri8)
80+
ENTRYS(ADC64mi32, ADC64mi8)
81+
ENTRYS(ADC64ri32, ADC64ri8)
82+
ENTRYS(SBB16mi, SBB16mi8)
83+
ENTRYS(SBB16ri, SBB16ri8)
84+
ENTRYS(SBB32mi, SBB32mi8)
85+
ENTRYS(SBB32ri, SBB32ri8)
86+
ENTRYS(SBB64mi32, SBB64mi8)
87+
ENTRYS(SBB64ri32, SBB64ri8)
88+
#undef ENTRYS
7289
#undef ENTRY

llvm/test/CodeGen/X86/apx/adc.ll

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ define i16 @adc16ri8(i16 %a, i16 %x, i16 %y) nounwind {
113113
; CHECK-LABEL: adc16ri8:
114114
; CHECK: # %bb.0:
115115
; CHECK-NEXT: cmpw %si, %dx # encoding: [0x66,0x39,0xf2]
116-
; CHECK-NEXT: adcw $0, %di, %ax # encoding: [0x62,0xf4,0x7d,0x18,0x81,0xd7,0x00,0x00]
116+
; CHECK-NEXT: adcw $0, %di, %ax # encoding: [0x62,0xf4,0x7d,0x18,0x83,0xd7,0x00]
117117
; CHECK-NEXT: addl $123, %eax # EVEX TO LEGACY Compression encoding: [0x83,0xc0,0x7b]
118118
; CHECK-NEXT: # kill: def $ax killed $ax killed $eax
119119
; CHECK-NEXT: retq # encoding: [0xc3]
@@ -128,7 +128,7 @@ define i32 @adc32ri8(i32 %a, i32 %x, i32 %y) nounwind {
128128
; CHECK-LABEL: adc32ri8:
129129
; CHECK: # %bb.0:
130130
; CHECK-NEXT: cmpl %esi, %edx # encoding: [0x39,0xf2]
131-
; CHECK-NEXT: adcl $123, %edi, %eax # encoding: [0x62,0xf4,0x7c,0x18,0x81,0xd7,0x7b,0x00,0x00,0x00]
131+
; CHECK-NEXT: adcl $123, %edi, %eax # encoding: [0x62,0xf4,0x7c,0x18,0x83,0xd7,0x7b]
132132
; CHECK-NEXT: retq # encoding: [0xc3]
133133
%s = add i32 %a, 123
134134
%k = icmp ugt i32 %x, %y
@@ -141,7 +141,7 @@ define i64 @adc64ri8(i64 %a, i64 %x, i64 %y) nounwind {
141141
; CHECK-LABEL: adc64ri8:
142142
; CHECK: # %bb.0:
143143
; CHECK-NEXT: cmpq %rsi, %rdx # encoding: [0x48,0x39,0xf2]
144-
; CHECK-NEXT: adcq $123, %rdi, %rax # encoding: [0x62,0xf4,0xfc,0x18,0x81,0xd7,0x7b,0x00,0x00,0x00]
144+
; CHECK-NEXT: adcq $123, %rdi, %rax # encoding: [0x62,0xf4,0xfc,0x18,0x83,0xd7,0x7b]
145145
; CHECK-NEXT: retq # encoding: [0xc3]
146146
%s = add i64 %a, 123
147147
%k = icmp ugt i64 %x, %y
@@ -167,7 +167,7 @@ define i16 @adc16ri(i16 %a, i16 %x, i16 %y) nounwind {
167167
; CHECK-LABEL: adc16ri:
168168
; CHECK: # %bb.0:
169169
; CHECK-NEXT: cmpw %si, %dx # encoding: [0x66,0x39,0xf2]
170-
; CHECK-NEXT: adcw $0, %di, %ax # encoding: [0x62,0xf4,0x7d,0x18,0x81,0xd7,0x00,0x00]
170+
; CHECK-NEXT: adcw $0, %di, %ax # encoding: [0x62,0xf4,0x7d,0x18,0x83,0xd7,0x00]
171171
; CHECK-NEXT: addl $1234, %eax # EVEX TO LEGACY Compression encoding: [0x05,0xd2,0x04,0x00,0x00]
172172
; CHECK-NEXT: # imm = 0x4D2
173173
; CHECK-NEXT: # kill: def $ax killed $ax killed $eax
@@ -267,7 +267,7 @@ define i16 @adc16mi8(ptr %ptr, i16 %x, i16 %y) nounwind {
267267
; CHECK-LABEL: adc16mi8:
268268
; CHECK: # %bb.0:
269269
; CHECK-NEXT: cmpw %si, %dx # encoding: [0x66,0x39,0xf2]
270-
; CHECK-NEXT: adcw $0, (%rdi), %ax # encoding: [0x62,0xf4,0x7d,0x18,0x81,0x17,0x00,0x00]
270+
; CHECK-NEXT: adcw $0, (%rdi), %ax # encoding: [0x62,0xf4,0x7d,0x18,0x83,0x17,0x00]
271271
; CHECK-NEXT: addl $123, %eax # EVEX TO LEGACY Compression encoding: [0x83,0xc0,0x7b]
272272
; CHECK-NEXT: # kill: def $ax killed $ax killed $eax
273273
; CHECK-NEXT: retq # encoding: [0xc3]
@@ -283,7 +283,7 @@ define i32 @adc32mi8(ptr %ptr, i32 %x, i32 %y) nounwind {
283283
; CHECK-LABEL: adc32mi8:
284284
; CHECK: # %bb.0:
285285
; CHECK-NEXT: cmpl %esi, %edx # encoding: [0x39,0xf2]
286-
; CHECK-NEXT: adcl $123, (%rdi), %eax # encoding: [0x62,0xf4,0x7c,0x18,0x81,0x17,0x7b,0x00,0x00,0x00]
286+
; CHECK-NEXT: adcl $123, (%rdi), %eax # encoding: [0x62,0xf4,0x7c,0x18,0x83,0x17,0x7b]
287287
; CHECK-NEXT: retq # encoding: [0xc3]
288288
%a = load i32, ptr %ptr
289289
%s = add i32 %a, 123
@@ -297,7 +297,7 @@ define i64 @adc64mi8(ptr %ptr, i64 %x, i64 %y) nounwind {
297297
; CHECK-LABEL: adc64mi8:
298298
; CHECK: # %bb.0:
299299
; CHECK-NEXT: cmpq %rsi, %rdx # encoding: [0x48,0x39,0xf2]
300-
; CHECK-NEXT: adcq $123, (%rdi), %rax # encoding: [0x62,0xf4,0xfc,0x18,0x81,0x17,0x7b,0x00,0x00,0x00]
300+
; CHECK-NEXT: adcq $123, (%rdi), %rax # encoding: [0x62,0xf4,0xfc,0x18,0x83,0x17,0x7b]
301301
; CHECK-NEXT: retq # encoding: [0xc3]
302302
%a = load i64, ptr %ptr
303303
%s = add i64 %a, 123
@@ -325,7 +325,7 @@ define i16 @adc16mi(ptr %ptr, i16 %x, i16 %y) nounwind {
325325
; CHECK-LABEL: adc16mi:
326326
; CHECK: # %bb.0:
327327
; CHECK-NEXT: cmpw %si, %dx # encoding: [0x66,0x39,0xf2]
328-
; CHECK-NEXT: adcw $0, (%rdi), %ax # encoding: [0x62,0xf4,0x7d,0x18,0x81,0x17,0x00,0x00]
328+
; CHECK-NEXT: adcw $0, (%rdi), %ax # encoding: [0x62,0xf4,0x7d,0x18,0x83,0x17,0x00]
329329
; CHECK-NEXT: addl $1234, %eax # EVEX TO LEGACY Compression encoding: [0x05,0xd2,0x04,0x00,0x00]
330330
; CHECK-NEXT: # imm = 0x4D2
331331
; CHECK-NEXT: # kill: def $ax killed $ax killed $eax
@@ -447,7 +447,7 @@ define void @adc16mi_legacy(ptr %ptr, i16 %x, i16 %y) nounwind {
447447
; CHECK-LABEL: adc16mi_legacy:
448448
; CHECK: # %bb.0:
449449
; CHECK-NEXT: cmpw %si, %dx # encoding: [0x66,0x39,0xf2]
450-
; CHECK-NEXT: adcw $0, (%rdi), %ax # encoding: [0x62,0xf4,0x7d,0x18,0x81,0x17,0x00,0x00]
450+
; CHECK-NEXT: adcw $0, (%rdi), %ax # encoding: [0x62,0xf4,0x7d,0x18,0x83,0x17,0x00]
451451
; CHECK-NEXT: addl $1234, %eax # EVEX TO LEGACY Compression encoding: [0x05,0xd2,0x04,0x00,0x00]
452452
; CHECK-NEXT: # imm = 0x4D2
453453
; CHECK-NEXT: movw %ax, (%rdi) # encoding: [0x66,0x89,0x07]

llvm/test/CodeGen/X86/apx/add.ll

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ entry:
8989
define i16 @add16ri8(i16 noundef %a) {
9090
; CHECK-LABEL: add16ri8:
9191
; CHECK: # %bb.0: # %entry
92-
; CHECK-NEXT: addl $123, %edi, %eax # encoding: [0x62,0xf4,0x7c,0x18,0x81,0xc7,0x7b,0x00,0x00,0x00]
92+
; CHECK-NEXT: addl $123, %edi, %eax # encoding: [0x62,0xf4,0x7c,0x18,0x83,0xc7,0x7b]
9393
; CHECK-NEXT: # kill: def $ax killed $ax killed $eax
9494
; CHECK-NEXT: retq # encoding: [0xc3]
9595
entry:
@@ -100,7 +100,7 @@ entry:
100100
define i32 @add32ri8(i32 noundef %a) {
101101
; CHECK-LABEL: add32ri8:
102102
; CHECK: # %bb.0: # %entry
103-
; CHECK-NEXT: addl $123, %edi, %eax # encoding: [0x62,0xf4,0x7c,0x18,0x81,0xc7,0x7b,0x00,0x00,0x00]
103+
; CHECK-NEXT: addl $123, %edi, %eax # encoding: [0x62,0xf4,0x7c,0x18,0x83,0xc7,0x7b]
104104
; CHECK-NEXT: retq # encoding: [0xc3]
105105
entry:
106106
%add = add i32 %a, 123
@@ -110,7 +110,7 @@ entry:
110110
define i64 @add64ri8(i64 noundef %a) {
111111
; CHECK-LABEL: add64ri8:
112112
; CHECK: # %bb.0: # %entry
113-
; CHECK-NEXT: addq $123, %rdi, %rax # encoding: [0x62,0xf4,0xfc,0x18,0x81,0xc7,0x7b,0x00,0x00,0x00]
113+
; CHECK-NEXT: addq $123, %rdi, %rax # encoding: [0x62,0xf4,0xfc,0x18,0x83,0xc7,0x7b]
114114
; CHECK-NEXT: retq # encoding: [0xc3]
115115
entry:
116116
%add = add i64 %a, 123
@@ -221,7 +221,7 @@ entry:
221221
define i32 @add32mi8(ptr %a) {
222222
; CHECK-LABEL: add32mi8:
223223
; CHECK: # %bb.0: # %entry
224-
; CHECK-NEXT: addl $123, (%rdi), %eax # encoding: [0x62,0xf4,0x7c,0x18,0x81,0x07,0x7b,0x00,0x00,0x00]
224+
; CHECK-NEXT: addl $123, (%rdi), %eax # encoding: [0x62,0xf4,0x7c,0x18,0x83,0x07,0x7b]
225225
; CHECK-NEXT: retq # encoding: [0xc3]
226226
entry:
227227
%t= load i32, ptr %a
@@ -232,7 +232,7 @@ entry:
232232
define i64 @add64mi8(ptr %a) {
233233
; CHECK-LABEL: add64mi8:
234234
; CHECK: # %bb.0: # %entry
235-
; CHECK-NEXT: addq $123, (%rdi), %rax # encoding: [0x62,0xf4,0xfc,0x18,0x81,0x07,0x7b,0x00,0x00,0x00]
235+
; CHECK-NEXT: addq $123, (%rdi), %rax # encoding: [0x62,0xf4,0xfc,0x18,0x83,0x07,0x7b]
236236
; CHECK-NEXT: retq # encoding: [0xc3]
237237
entry:
238238
%t= load i64, ptr %a
@@ -405,7 +405,7 @@ entry:
405405
define i16 @addflag16ri8(i16 noundef %a) {
406406
; CHECK-LABEL: addflag16ri8:
407407
; CHECK: # %bb.0: # %entry
408-
; CHECK-NEXT: addw $123, %di, %cx # encoding: [0x62,0xf4,0x75,0x18,0x81,0xc7,0x7b,0x00]
408+
; CHECK-NEXT: addw $123, %di, %cx # encoding: [0x62,0xf4,0x75,0x18,0x83,0xc7,0x7b]
409409
; CHECK-NEXT: movl $65535, %eax # encoding: [0xb8,0xff,0xff,0x00,0x00]
410410
; CHECK-NEXT: # imm = 0xFFFF
411411
; CHECK-NEXT: cmovael %ecx, %eax # encoding: [0x0f,0x43,0xc1]
@@ -419,7 +419,7 @@ entry:
419419
define i32 @addflag32ri8(i32 noundef %a) {
420420
; CHECK-LABEL: addflag32ri8:
421421
; CHECK: # %bb.0: # %entry
422-
; CHECK-NEXT: addl $123, %edi, %ecx # encoding: [0x62,0xf4,0x74,0x18,0x81,0xc7,0x7b,0x00,0x00,0x00]
422+
; CHECK-NEXT: addl $123, %edi, %ecx # encoding: [0x62,0xf4,0x74,0x18,0x83,0xc7,0x7b]
423423
; CHECK-NEXT: movl $-1, %eax # encoding: [0xb8,0xff,0xff,0xff,0xff]
424424
; CHECK-NEXT: cmovael %ecx, %eax # encoding: [0x0f,0x43,0xc1]
425425
; CHECK-NEXT: retq # encoding: [0xc3]
@@ -431,7 +431,7 @@ entry:
431431
define i64 @addflag64ri8(i64 noundef %a) {
432432
; CHECK-LABEL: addflag64ri8:
433433
; CHECK: # %bb.0: # %entry
434-
; CHECK-NEXT: addq $123, %rdi, %rcx # encoding: [0x62,0xf4,0xf4,0x18,0x81,0xc7,0x7b,0x00,0x00,0x00]
434+
; CHECK-NEXT: addq $123, %rdi, %rcx # encoding: [0x62,0xf4,0xf4,0x18,0x83,0xc7,0x7b]
435435
; CHECK-NEXT: movq $-1, %rax # encoding: [0x48,0xc7,0xc0,0xff,0xff,0xff,0xff]
436436
; CHECK-NEXT: cmovaeq %rcx, %rax # encoding: [0x48,0x0f,0x43,0xc1]
437437
; CHECK-NEXT: retq # encoding: [0xc3]

0 commit comments

Comments
 (0)