Lines Matching +full:- +full:a
2 ; RUN: llc < %s -verify-machineinstrs -show-mc-encoding | FileCheck %s
4 target triple = "x86_64-unknown-unknown"
11 declare dso_local void @a()
15 ; CHECK-LABEL: add64_imm32_br:
17 ; CHECK-NEXT: addq $16777214, g64(%rip) # encoding: [0x48,0x81,0x05,A,A,A,A,0xfe,0xff,0xff,0x00]
18 ; CHECK-NEXT: # fixup A - offset: 3, value: g64-8, kind: reloc_riprel_4byte
19 ; CHECK-NEXT: # imm = 0xFFFFFE
20 ; CHECK-NEXT: jns b # TAILCALL
21 ; CHECK-NEXT: # encoding: [0x79,A]
22 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
23 ; CHECK-NEXT: # %bb.1: # %a
24 ; CHECK-NEXT: jmp a # TAILCALL
25 ; CHECK-NEXT: # encoding: [0xeb,A]
26 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
29 ; Add 0x00FFFFFE, a positive immediate requiring 24-bits.
33 br i1 %cond, label %a, label %b
35 a:
36 tail call void @a()
45 ; CHECK-LABEL: add64_sext_imm32_br:
47 ; CHECK-NEXT: addq $-2147483648, g64(%rip) # encoding: [0x48,0x81,0x05,A,A,A,A,0x00,0x00,0x00,0x…
48 ; CHECK-NEXT: # fixup A - offset: 3, value: g64-8, kind: reloc_riprel_4byte
49 ; CHECK-NEXT: # imm = 0x80000000
50 ; CHECK-NEXT: jns b # TAILCALL
51 ; CHECK-NEXT: # encoding: [0x79,A]
52 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
53 ; CHECK-NEXT: # %bb.1: # %a
54 ; CHECK-NEXT: jmp a # TAILCALL
55 ; CHECK-NEXT: # encoding: [0xeb,A]
56 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
59 ; Add -0x80000000, which requires sign-extended 32 bits.
60 %add = add i64 %load1, -2147483648
63 br i1 %cond, label %a, label %b
65 a:
66 tail call void @a()
75 ; CHECK-LABEL: add64_imm32_via_sub_br:
77 ; CHECK-NEXT: subq $-2147483648, g64(%rip) # encoding: [0x48,0x81,0x2d,A,A,A,A,0x00,0x00,0x00,0x…
78 ; CHECK-NEXT: # fixup A - offset: 3, value: g64-8, kind: reloc_riprel_4byte
79 ; CHECK-NEXT: # imm = 0x80000000
80 ; CHECK-NEXT: jns b # TAILCALL
81 ; CHECK-NEXT: # encoding: [0x79,A]
82 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
83 ; CHECK-NEXT: # %bb.1: # %a
84 ; CHECK-NEXT: jmp a # TAILCALL
85 ; CHECK-NEXT: # encoding: [0xeb,A]
86 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
89 ; Add 0x80000000, which cannot fit in a sign extended 32-bit immediate. This
90 ; get's folded because we can instead subtract -0x80000000.
94 br i1 %cond, label %a, label %b
96 a:
97 tail call void @a()
106 ; CHECK-LABEL: add64_no_imm32_via_sub_due_to_cf_br:
108 ; CHECK-NEXT: movl $2147483648, %eax # encoding: [0xb8,0x00,0x00,0x00,0x80]
109 ; CHECK-NEXT: # imm = 0x80000000
110 ; CHECK-NEXT: addq %rax, g64(%rip) # encoding: [0x48,0x01,0x05,A,A,A,A]
111 ; CHECK-NEXT: # fixup A - offset: 3, value: g64-4, kind: reloc_riprel_4byte
112 ; CHECK-NEXT: jae b # TAILCALL
113 ; CHECK-NEXT: # encoding: [0x73,A]
114 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
115 ; CHECK-NEXT: # %bb.1: # %a
116 ; CHECK-NEXT: jmp a # TAILCALL
117 ; CHECK-NEXT: # encoding: [0xeb,A]
118 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
121 ; Add 0x80000000, which cannot fit in a sign extended 32-bit immediate, but
122 ; could in theory be folded into an immediate operand of a sub. However, we
127 br i1 %cond, label %a, label %b
129 a:
130 tail call void @a()
139 ; CHECK-LABEL: add64_too_large_imm32_br:
141 ; CHECK-NEXT: movl $2147483649, %eax # encoding: [0xb8,0x01,0x00,0x00,0x80]
142 ; CHECK-NEXT: # imm = 0x80000001
143 ; CHECK-NEXT: addq %rax, g64(%rip) # encoding: [0x48,0x01,0x05,A,A,A,A]
144 ; CHECK-NEXT: # fixup A - offset: 3, value: g64-4, kind: reloc_riprel_4byte
145 ; CHECK-NEXT: jns b # TAILCALL
146 ; CHECK-NEXT: # encoding: [0x79,A]
147 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
148 ; CHECK-NEXT: # %bb.1: # %a
149 ; CHECK-NEXT: jmp a # TAILCALL
150 ; CHECK-NEXT: # encoding: [0xeb,A]
151 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
154 ; Add 0x80000001, which cannot fit in a sign extended 32-bit immediate. This
159 br i1 %cond, label %a, label %b
161 a:
162 tail call void @a()
171 ; CHECK-LABEL: add64_imm8_via_sub_br:
173 ; CHECK-NEXT: subq $-128, g64(%rip) # encoding: [0x48,0x83,0x2d,A,A,A,A,0x80]
174 ; CHECK-NEXT: # fixup A - offset: 3, value: g64-5, kind: reloc_riprel_4byte
175 ; CHECK-NEXT: jns b # TAILCALL
176 ; CHECK-NEXT: # encoding: [0x79,A]
177 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
178 ; CHECK-NEXT: # %bb.1: # %a
179 ; CHECK-NEXT: jmp a # TAILCALL
180 ; CHECK-NEXT: # encoding: [0xeb,A]
181 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
185 ; extended, but which can fit if we convert to a sub and negate the value.
189 br i1 %cond, label %a, label %b
191 a:
192 tail call void @a()
201 ; CHECK-LABEL: add64_imm8_br:
203 ; CHECK-NEXT: addq $42, g64(%rip) # encoding: [0x48,0x83,0x05,A,A,A,A,0x2a]
204 ; CHECK-NEXT: # fixup A - offset: 3, value: g64-5, kind: reloc_riprel_4byte
205 ; CHECK-NEXT: jns b # TAILCALL
206 ; CHECK-NEXT: # encoding: [0x79,A]
207 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
208 ; CHECK-NEXT: # %bb.1: # %a
209 ; CHECK-NEXT: jmp a # TAILCALL
210 ; CHECK-NEXT: # encoding: [0xeb,A]
211 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
217 br i1 %cond, label %a, label %b
219 a:
220 tail call void @a()
229 ; CHECK-LABEL: add64_imm8_neg_br:
231 ; CHECK-NEXT: addq $-42, g64(%rip) # encoding: [0x48,0x83,0x05,A,A,A,A,0xd6]
232 ; CHECK-NEXT: # fixup A - offset: 3, value: g64-5, kind: reloc_riprel_4byte
233 ; CHECK-NEXT: jns b # TAILCALL
234 ; CHECK-NEXT: # encoding: [0x79,A]
235 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
236 ; CHECK-NEXT: # %bb.1: # %a
237 ; CHECK-NEXT: jmp a # TAILCALL
238 ; CHECK-NEXT: # encoding: [0xeb,A]
239 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
242 %add = add i64 %load1, -42
245 br i1 %cond, label %a, label %b
247 a:
248 tail call void @a()
257 ; CHECK-LABEL: add32_imm_br:
259 ; CHECK-NEXT: addl $-2147483648, g32(%rip) # encoding: [0x81,0x05,A,A,A,A,0x00,0x00,0x00,0x80]
260 ; CHECK-NEXT: # fixup A - offset: 2, value: g32-8, kind: reloc_riprel_4byte
261 ; CHECK-NEXT: # imm = 0x80000000
262 ; CHECK-NEXT: jns b # TAILCALL
263 ; CHECK-NEXT: # encoding: [0x79,A]
264 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
265 ; CHECK-NEXT: # %bb.1: # %a
266 ; CHECK-NEXT: jmp a # TAILCALL
267 ; CHECK-NEXT: # encoding: [0xeb,A]
268 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
271 ; Add 0x80000000, a positive number requiring 32 bits of immediate.
275 br i1 %cond, label %a, label %b
277 a:
278 tail call void @a()
287 ; CHECK-LABEL: add32_imm8_br:
289 ; CHECK-NEXT: addl $42, g32(%rip) # encoding: [0x83,0x05,A,A,A,A,0x2a]
290 ; CHECK-NEXT: # fixup A - offset: 2, value: g32-5, kind: reloc_riprel_4byte
291 ; CHECK-NEXT: jns b # TAILCALL
292 ; CHECK-NEXT: # encoding: [0x79,A]
293 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
294 ; CHECK-NEXT: # %bb.1: # %a
295 ; CHECK-NEXT: jmp a # TAILCALL
296 ; CHECK-NEXT: # encoding: [0xeb,A]
297 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
303 br i1 %cond, label %a, label %b
305 a:
306 tail call void @a()
315 ; CHECK-LABEL: add32_imm8_neg_br:
317 ; CHECK-NEXT: addl $-42, g32(%rip) # encoding: [0x83,0x05,A,A,A,A,0xd6]
318 ; CHECK-NEXT: # fixup A - offset: 2, value: g32-5, kind: reloc_riprel_4byte
319 ; CHECK-NEXT: jns b # TAILCALL
320 ; CHECK-NEXT: # encoding: [0x79,A]
321 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
322 ; CHECK-NEXT: # %bb.1: # %a
323 ; CHECK-NEXT: jmp a # TAILCALL
324 ; CHECK-NEXT: # encoding: [0xeb,A]
325 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
328 %add = add i32 %load1, -42
331 br i1 %cond, label %a, label %b
333 a:
334 tail call void @a()
343 ; CHECK-LABEL: add16_imm_br:
345 ; CHECK-NEXT: addw $-32768, g16(%rip) # encoding: [0x66,0x81,0x05,A,A,A,A,0x00,0x80]
346 ; CHECK-NEXT: # fixup A - offset: 3, value: g16-6, kind: reloc_riprel_4byte
347 ; CHECK-NEXT: # imm = 0x8000
348 ; CHECK-NEXT: jns b # TAILCALL
349 ; CHECK-NEXT: # encoding: [0x79,A]
350 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
351 ; CHECK-NEXT: # %bb.1: # %a
352 ; CHECK-NEXT: jmp a # TAILCALL
353 ; CHECK-NEXT: # encoding: [0xeb,A]
354 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
357 ; Add 0x8000, a positive number requiring 16 bits of immediate.
361 br i1 %cond, label %a, label %b
363 a:
364 tail call void @a()
373 ; CHECK-LABEL: add16_imm8_br:
375 ; CHECK-NEXT: addw $42, g16(%rip) # encoding: [0x66,0x83,0x05,A,A,A,A,0x2a]
376 ; CHECK-NEXT: # fixup A - offset: 3, value: g16-5, kind: reloc_riprel_4byte
377 ; CHECK-NEXT: jns b # TAILCALL
378 ; CHECK-NEXT: # encoding: [0x79,A]
379 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
380 ; CHECK-NEXT: # %bb.1: # %a
381 ; CHECK-NEXT: jmp a # TAILCALL
382 ; CHECK-NEXT: # encoding: [0xeb,A]
383 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
389 br i1 %cond, label %a, label %b
391 a:
392 tail call void @a()
401 ; CHECK-LABEL: add16_imm8_neg_br:
403 ; CHECK-NEXT: addw $-42, g16(%rip) # encoding: [0x66,0x83,0x05,A,A,A,A,0xd6]
404 ; CHECK-NEXT: # fixup A - offset: 3, value: g16-5, kind: reloc_riprel_4byte
405 ; CHECK-NEXT: jns b # TAILCALL
406 ; CHECK-NEXT: # encoding: [0x79,A]
407 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
408 ; CHECK-NEXT: # %bb.1: # %a
409 ; CHECK-NEXT: jmp a # TAILCALL
410 ; CHECK-NEXT: # encoding: [0xeb,A]
411 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
414 %add = add i16 %load1, -42
417 br i1 %cond, label %a, label %b
419 a:
420 tail call void @a()
429 ; CHECK-LABEL: add8_imm_br:
431 ; CHECK-NEXT: addb $-2, g8(%rip) # encoding: [0x80,0x05,A,A,A,A,0xfe]
432 ; CHECK-NEXT: # fixup A - offset: 2, value: g8-5, kind: reloc_riprel_4byte
433 ; CHECK-NEXT: jns b # TAILCALL
434 ; CHECK-NEXT: # encoding: [0x79,A]
435 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
436 ; CHECK-NEXT: # %bb.1: # %a
437 ; CHECK-NEXT: jmp a # TAILCALL
438 ; CHECK-NEXT: # encoding: [0xeb,A]
439 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
442 %add = add i8 %load1, -2
445 br i1 %cond, label %a, label %b
447 a:
448 tail call void @a()
457 ; CHECK-LABEL: add64_reg_br:
459 ; CHECK-NEXT: addq %rdi, g64(%rip) # encoding: [0x48,0x01,0x3d,A,A,A,A]
460 ; CHECK-NEXT: # fixup A - offset: 3, value: g64-4, kind: reloc_riprel_4byte
461 ; CHECK-NEXT: jns b # TAILCALL
462 ; CHECK-NEXT: # encoding: [0x79,A]
463 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
464 ; CHECK-NEXT: # %bb.1: # %a
465 ; CHECK-NEXT: jmp a # TAILCALL
466 ; CHECK-NEXT: # encoding: [0xeb,A]
467 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
473 br i1 %cond, label %a, label %b
475 a:
476 tail call void @a()
485 ; CHECK-LABEL: add32_reg_br:
487 ; CHECK-NEXT: addl %edi, g32(%rip) # encoding: [0x01,0x3d,A,A,A,A]
488 ; CHECK-NEXT: # fixup A - offset: 2, value: g32-4, kind: reloc_riprel_4byte
489 ; CHECK-NEXT: jns b # TAILCALL
490 ; CHECK-NEXT: # encoding: [0x79,A]
491 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
492 ; CHECK-NEXT: # %bb.1: # %a
493 ; CHECK-NEXT: jmp a # TAILCALL
494 ; CHECK-NEXT: # encoding: [0xeb,A]
495 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
501 br i1 %cond, label %a, label %b
503 a:
504 tail call void @a()
513 ; CHECK-LABEL: add16_reg_br:
515 ; CHECK-NEXT: addw %di, g16(%rip) # encoding: [0x66,0x01,0x3d,A,A,A,A]
516 ; CHECK-NEXT: # fixup A - offset: 3, value: g16-4, kind: reloc_riprel_4byte
517 ; CHECK-NEXT: jns b # TAILCALL
518 ; CHECK-NEXT: # encoding: [0x79,A]
519 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
520 ; CHECK-NEXT: # %bb.1: # %a
521 ; CHECK-NEXT: jmp a # TAILCALL
522 ; CHECK-NEXT: # encoding: [0xeb,A]
523 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
529 br i1 %cond, label %a, label %b
531 a:
532 tail call void @a()
541 ; CHECK-LABEL: add8_reg_br:
543 ; CHECK-NEXT: addb %dil, g8(%rip) # encoding: [0x40,0x00,0x3d,A,A,A,A]
544 ; CHECK-NEXT: # fixup A - offset: 3, value: g8-4, kind: reloc_riprel_4byte
545 ; CHECK-NEXT: jns b # TAILCALL
546 ; CHECK-NEXT: # encoding: [0x79,A]
547 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
548 ; CHECK-NEXT: # %bb.1: # %a
549 ; CHECK-NEXT: jmp a # TAILCALL
550 ; CHECK-NEXT: # encoding: [0xeb,A]
551 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
557 br i1 %cond, label %a, label %b
559 a:
560 tail call void @a()
569 ; CHECK-LABEL: sub64_imm32_br:
571 ; CHECK-NEXT: subq $-2147483648, g64(%rip) # encoding: [0x48,0x81,0x2d,A,A,A,A,0x00,0x00,0x00,0x…
572 ; CHECK-NEXT: # fixup A - offset: 3, value: g64-8, kind: reloc_riprel_4byte
573 ; CHECK-NEXT: # imm = 0x80000000
574 ; CHECK-NEXT: jns b # TAILCALL
575 ; CHECK-NEXT: # encoding: [0x79,A]
576 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
577 ; CHECK-NEXT: # %bb.1: # %a
578 ; CHECK-NEXT: jmp a # TAILCALL
579 ; CHECK-NEXT: # encoding: [0xeb,A]
580 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
583 ; Subtract -0x80000000, which can't be negated into a sign-extended 32-bit
585 %sub = sub i64 %load1, -2147483648
588 br i1 %cond, label %a, label %b
590 a:
591 tail call void @a()
600 ; CHECK-LABEL: sub64_too_large_imm32_br:
602 ; CHECK-NEXT: movabsq $-4294967295, %rax # encoding: [0x48,0xb8,0x01,0x00,0x00,0x00,0xff,0xff,0x…
603 ; CHECK-NEXT: # imm = 0xFFFFFFFF00000001
604 ; CHECK-NEXT: addq %rax, g64(%rip) # encoding: [0x48,0x01,0x05,A,A,A,A]
605 ; CHECK-NEXT: # fixup A - offset: 3, value: g64-4, kind: reloc_riprel_4byte
606 ; CHECK-NEXT: jns b # TAILCALL
607 ; CHECK-NEXT: # encoding: [0x79,A]
608 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
609 ; CHECK-NEXT: # %bb.1: # %a
610 ; CHECK-NEXT: jmp a # TAILCALL
611 ; CHECK-NEXT: # encoding: [0xeb,A]
612 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
615 ; Subtract 0xFFFFFFFF, which cannot fit in a sign extended 32-bit immediate,
620 br i1 %cond, label %a, label %b
622 a:
623 tail call void @a()
632 ; CHECK-LABEL: sub64_imm8_br:
634 ; CHECK-NEXT: subq $-128, g64(%rip) # encoding: [0x48,0x83,0x2d,A,A,A,A,0x80]
635 ; CHECK-NEXT: # fixup A - offset: 3, value: g64-5, kind: reloc_riprel_4byte
636 ; CHECK-NEXT: jns b # TAILCALL
637 ; CHECK-NEXT: # encoding: [0x79,A]
638 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
639 ; CHECK-NEXT: # %bb.1: # %a
640 ; CHECK-NEXT: jmp a # TAILCALL
641 ; CHECK-NEXT: # encoding: [0xeb,A]
642 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
645 ; Subtract -0x80, which can be done with an 8-bit immediate but only as
646 ; a subtract where that immediate can be negative.
647 %sub = sub i64 %load1, -128
650 br i1 %cond, label %a, label %b
652 a:
653 tail call void @a()
662 ; CHECK-LABEL: sub32_imm_br:
664 ; CHECK-NEXT: addl $-2147483648, g32(%rip) # encoding: [0x81,0x05,A,A,A,A,0x00,0x00,0x00,0x80]
665 ; CHECK-NEXT: # fixup A - offset: 2, value: g32-8, kind: reloc_riprel_4byte
666 ; CHECK-NEXT: # imm = 0x80000000
667 ; CHECK-NEXT: jns b # TAILCALL
668 ; CHECK-NEXT: # encoding: [0x79,A]
669 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
670 ; CHECK-NEXT: # %bb.1: # %a
671 ; CHECK-NEXT: jmp a # TAILCALL
672 ; CHECK-NEXT: # encoding: [0xeb,A]
673 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
676 ; Subtract -0x80000000, which requires 32 bits of immediate but still gets
678 %sub = sub i32 %load1, -2147483648
681 br i1 %cond, label %a, label %b
683 a:
684 tail call void @a()
693 ; CHECK-LABEL: sub32_imm8_br:
695 ; CHECK-NEXT: subl $-128, g32(%rip) # encoding: [0x83,0x2d,A,A,A,A,0x80]
696 ; CHECK-NEXT: # fixup A - offset: 2, value: g32-5, kind: reloc_riprel_4byte
697 ; CHECK-NEXT: jns b # TAILCALL
698 ; CHECK-NEXT: # encoding: [0x79,A]
699 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
700 ; CHECK-NEXT: # %bb.1: # %a
701 ; CHECK-NEXT: jmp a # TAILCALL
702 ; CHECK-NEXT: # encoding: [0xeb,A]
703 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
706 ; Subtract -0x80, which can be done with an 8-bit immediate but only as
707 ; a subtract where that immediate can be negative.
708 %sub = sub i32 %load1, -128
711 br i1 %cond, label %a, label %b
713 a:
714 tail call void @a()
723 ; CHECK-LABEL: sub16_imm_br:
725 ; CHECK-NEXT: addw $-32768, g16(%rip) # encoding: [0x66,0x81,0x05,A,A,A,A,0x00,0x80]
726 ; CHECK-NEXT: # fixup A - offset: 3, value: g16-6, kind: reloc_riprel_4byte
727 ; CHECK-NEXT: # imm = 0x8000
728 ; CHECK-NEXT: jns b # TAILCALL
729 ; CHECK-NEXT: # encoding: [0x79,A]
730 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
731 ; CHECK-NEXT: # %bb.1: # %a
732 ; CHECK-NEXT: jmp a # TAILCALL
733 ; CHECK-NEXT: # encoding: [0xeb,A]
734 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
737 ; Subtract -0x8000, which requires a 16 bits of immediate but still gets
739 %sub = sub i16 %load1, -32768
742 br i1 %cond, label %a, label %b
744 a:
745 tail call void @a()
754 ; CHECK-LABEL: sub16_imm8_br:
756 ; CHECK-NEXT: subw $-128, g16(%rip) # encoding: [0x66,0x83,0x2d,A,A,A,A,0x80]
757 ; CHECK-NEXT: # fixup A - offset: 3, value: g16-5, kind: reloc_riprel_4byte
758 ; CHECK-NEXT: jns b # TAILCALL
759 ; CHECK-NEXT: # encoding: [0x79,A]
760 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
761 ; CHECK-NEXT: # %bb.1: # %a
762 ; CHECK-NEXT: jmp a # TAILCALL
763 ; CHECK-NEXT: # encoding: [0xeb,A]
764 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
767 ; Subtract -0x80, which can be done with an 8-bit immediate but only as
768 ; a subtract where that immediate can be negative.
769 %sub = sub i16 %load1, -128
772 br i1 %cond, label %a, label %b
774 a:
775 tail call void @a()
784 ; CHECK-LABEL: sub8_imm_br:
786 ; CHECK-NEXT: addb $-128, g8(%rip) # encoding: [0x80,0x05,A,A,A,A,0x80]
787 ; CHECK-NEXT: # fixup A - offset: 2, value: g8-5, kind: reloc_riprel_4byte
788 ; CHECK-NEXT: jns b # TAILCALL
789 ; CHECK-NEXT: # encoding: [0x79,A]
790 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
791 ; CHECK-NEXT: # %bb.1: # %a
792 ; CHECK-NEXT: jmp a # TAILCALL
793 ; CHECK-NEXT: # encoding: [0xeb,A]
794 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
797 ; Subtract -0x80, which requires an 8-bit immediate but still gets lowered as
799 %sub = sub i8 %load1, -128
802 br i1 %cond, label %a, label %b
804 a:
805 tail call void @a()
814 ; CHECK-LABEL: sub64_reg_br:
816 ; CHECK-NEXT: subq %rdi, g64(%rip) # encoding: [0x48,0x29,0x3d,A,A,A,A]
817 ; CHECK-NEXT: # fixup A - offset: 3, value: g64-4, kind: reloc_riprel_4byte
818 ; CHECK-NEXT: jns b # TAILCALL
819 ; CHECK-NEXT: # encoding: [0x79,A]
820 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
821 ; CHECK-NEXT: # %bb.1: # %a
822 ; CHECK-NEXT: jmp a # TAILCALL
823 ; CHECK-NEXT: # encoding: [0xeb,A]
824 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
830 br i1 %cond, label %a, label %b
832 a:
833 tail call void @a()
842 ; CHECK-LABEL: sub32_reg_br:
844 ; CHECK-NEXT: subl %edi, g32(%rip) # encoding: [0x29,0x3d,A,A,A,A]
845 ; CHECK-NEXT: # fixup A - offset: 2, value: g32-4, kind: reloc_riprel_4byte
846 ; CHECK-NEXT: jns b # TAILCALL
847 ; CHECK-NEXT: # encoding: [0x79,A]
848 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
849 ; CHECK-NEXT: # %bb.1: # %a
850 ; CHECK-NEXT: jmp a # TAILCALL
851 ; CHECK-NEXT: # encoding: [0xeb,A]
852 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
858 br i1 %cond, label %a, label %b
860 a:
861 tail call void @a()
870 ; CHECK-LABEL: sub16_reg_br:
872 ; CHECK-NEXT: subw %di, g16(%rip) # encoding: [0x66,0x29,0x3d,A,A,A,A]
873 ; CHECK-NEXT: # fixup A - offset: 3, value: g16-4, kind: reloc_riprel_4byte
874 ; CHECK-NEXT: jns b # TAILCALL
875 ; CHECK-NEXT: # encoding: [0x79,A]
876 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
877 ; CHECK-NEXT: # %bb.1: # %a
878 ; CHECK-NEXT: jmp a # TAILCALL
879 ; CHECK-NEXT: # encoding: [0xeb,A]
880 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
886 br i1 %cond, label %a, label %b
888 a:
889 tail call void @a()
898 ; CHECK-LABEL: sub8_reg_br:
900 ; CHECK-NEXT: subb %dil, g8(%rip) # encoding: [0x40,0x28,0x3d,A,A,A,A]
901 ; CHECK-NEXT: # fixup A - offset: 3, value: g8-4, kind: reloc_riprel_4byte
902 ; CHECK-NEXT: jns b # TAILCALL
903 ; CHECK-NEXT: # encoding: [0x79,A]
904 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
905 ; CHECK-NEXT: # %bb.1: # %a
906 ; CHECK-NEXT: jmp a # TAILCALL
907 ; CHECK-NEXT: # encoding: [0xeb,A]
908 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
914 br i1 %cond, label %a, label %b
916 a:
917 tail call void @a()
926 ; CHECK-LABEL: and64_imm32_br:
928 ; CHECK-NEXT: andq $16777215, g64(%rip) # encoding: [0x48,0x81,0x25,A,A,A,A,0xff,0xff,0xff,0x00]
929 ; CHECK-NEXT: # fixup A - offset: 3, value: g64-8, kind: reloc_riprel_4byte
930 ; CHECK-NEXT: # imm = 0xFFFFFF
931 ; CHECK-NEXT: jne b # TAILCALL
932 ; CHECK-NEXT: # encoding: [0x75,A]
933 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
934 ; CHECK-NEXT: # %bb.1: # %a
935 ; CHECK-NEXT: jmp a # TAILCALL
936 ; CHECK-NEXT: # encoding: [0xeb,A]
937 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
940 ; And 0x00FFFFFF, a positive immediate requiring 24-bits.
944 br i1 %cond, label %a, label %b
946 a:
947 tail call void @a()
956 ; CHECK-LABEL: and64_sext_imm32_br:
958 ; CHECK-NEXT: andq $-2147483648, g64(%rip) # encoding: [0x48,0x81,0x25,A,A,A,A,0x00,0x00,0x00,0x…
959 ; CHECK-NEXT: # fixup A - offset: 3, value: g64-8, kind: reloc_riprel_4byte
960 ; CHECK-NEXT: # imm = 0x80000000
961 ; CHECK-NEXT: jne b # TAILCALL
962 ; CHECK-NEXT: # encoding: [0x75,A]
963 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
964 ; CHECK-NEXT: # %bb.1: # %a
965 ; CHECK-NEXT: jmp a # TAILCALL
966 ; CHECK-NEXT: # encoding: [0xeb,A]
967 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
970 ; And -0x80000000, which requires sign-extended 32 bits.
971 %and = and i64 %load1, -2147483648
974 br i1 %cond, label %a, label %b
976 a:
977 tail call void @a()
986 ; CHECK-LABEL: and64_imm8_br:
988 ; CHECK-NEXT: andq $15, g64(%rip) # encoding: [0x48,0x83,0x25,A,A,A,A,0x0f]
989 ; CHECK-NEXT: # fixup A - offset: 3, value: g64-5, kind: reloc_riprel_4byte
990 ; CHECK-NEXT: jne b # TAILCALL
991 ; CHECK-NEXT: # encoding: [0x75,A]
992 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
993 ; CHECK-NEXT: # %bb.1: # %a
994 ; CHECK-NEXT: jmp a # TAILCALL
995 ; CHECK-NEXT: # encoding: [0xeb,A]
996 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
1002 br i1 %cond, label %a, label %b
1004 a:
1005 tail call void @a()
1014 ; CHECK-LABEL: and64_imm8_neg_br:
1016 ; CHECK-NEXT: andq $-4, g64(%rip) # encoding: [0x48,0x83,0x25,A,A,A,A,0xfc]
1017 ; CHECK-NEXT: # fixup A - offset: 3, value: g64-5, kind: reloc_riprel_4byte
1018 ; CHECK-NEXT: jne b # TAILCALL
1019 ; CHECK-NEXT: # encoding: [0x75,A]
1020 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
1021 ; CHECK-NEXT: # %bb.1: # %a
1022 ; CHECK-NEXT: jmp a # TAILCALL
1023 ; CHECK-NEXT: # encoding: [0xeb,A]
1024 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
1027 %and = and i64 %load1, -4
1030 br i1 %cond, label %a, label %b
1032 a:
1033 tail call void @a()
1042 ; CHECK-LABEL: and32_imm_br:
1044 ; CHECK-NEXT: andl $-2147483648, g32(%rip) # encoding: [0x81,0x25,A,A,A,A,0x00,0x00,0x00,0x80]
1045 ; CHECK-NEXT: # fixup A - offset: 2, value: g32-8, kind: reloc_riprel_4byte
1046 ; CHECK-NEXT: # imm = 0x80000000
1047 ; CHECK-NEXT: jne b # TAILCALL
1048 ; CHECK-NEXT: # encoding: [0x75,A]
1049 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
1050 ; CHECK-NEXT: # %bb.1: # %a
1051 ; CHECK-NEXT: jmp a # TAILCALL
1052 ; CHECK-NEXT: # encoding: [0xeb,A]
1053 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
1056 ; And 0x80000000, a positive number requiring 32 bits of immediate.
1060 br i1 %cond, label %a, label %b
1062 a:
1063 tail call void @a()
1072 ; CHECK-LABEL: and32_imm8_br:
1074 ; CHECK-NEXT: andl $15, g32(%rip) # encoding: [0x83,0x25,A,A,A,A,0x0f]
1075 ; CHECK-NEXT: # fixup A - offset: 2, value: g32-5, kind: reloc_riprel_4byte
1076 ; CHECK-NEXT: jne b # TAILCALL
1077 ; CHECK-NEXT: # encoding: [0x75,A]
1078 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
1079 ; CHECK-NEXT: # %bb.1: # %a
1080 ; CHECK-NEXT: jmp a # TAILCALL
1081 ; CHECK-NEXT: # encoding: [0xeb,A]
1082 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
1088 br i1 %cond, label %a, label %b
1090 a:
1091 tail call void @a()
1100 ; CHECK-LABEL: and32_imm8_neg_br:
1102 ; CHECK-NEXT: andl $-4, g32(%rip) # encoding: [0x83,0x25,A,A,A,A,0xfc]
1103 ; CHECK-NEXT: # fixup A - offset: 2, value: g32-5, kind: reloc_riprel_4byte
1104 ; CHECK-NEXT: jne b # TAILCALL
1105 ; CHECK-NEXT: # encoding: [0x75,A]
1106 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
1107 ; CHECK-NEXT: # %bb.1: # %a
1108 ; CHECK-NEXT: jmp a # TAILCALL
1109 ; CHECK-NEXT: # encoding: [0xeb,A]
1110 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
1113 %and = and i32 %load1, -4
1116 br i1 %cond, label %a, label %b
1118 a:
1119 tail call void @a()
1128 ; CHECK-LABEL: and16_imm_br:
1130 ; CHECK-NEXT: andw $-32768, g16(%rip) # encoding: [0x66,0x81,0x25,A,A,A,A,0x00,0x80]
1131 ; CHECK-NEXT: # fixup A - offset: 3, value: g16-6, kind: reloc_riprel_4byte
1132 ; CHECK-NEXT: # imm = 0x8000
1133 ; CHECK-NEXT: jne b # TAILCALL
1134 ; CHECK-NEXT: # encoding: [0x75,A]
1135 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
1136 ; CHECK-NEXT: # %bb.1: # %a
1137 ; CHECK-NEXT: jmp a # TAILCALL
1138 ; CHECK-NEXT: # encoding: [0xeb,A]
1139 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
1145 br i1 %cond, label %a, label %b
1147 a:
1148 tail call void @a()
1157 ; CHECK-LABEL: and16_imm8_br:
1159 ; CHECK-NEXT: andw $15, g16(%rip) # encoding: [0x66,0x83,0x25,A,A,A,A,0x0f]
1160 ; CHECK-NEXT: # fixup A - offset: 3, value: g16-5, kind: reloc_riprel_4byte
1161 ; CHECK-NEXT: jne b # TAILCALL
1162 ; CHECK-NEXT: # encoding: [0x75,A]
1163 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
1164 ; CHECK-NEXT: # %bb.1: # %a
1165 ; CHECK-NEXT: jmp a # TAILCALL
1166 ; CHECK-NEXT: # encoding: [0xeb,A]
1167 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
1173 br i1 %cond, label %a, label %b
1175 a:
1176 tail call void @a()
1185 ; CHECK-LABEL: and16_imm8_neg_br:
1187 ; CHECK-NEXT: andw $-4, g16(%rip) # encoding: [0x66,0x83,0x25,A,A,A,A,0xfc]
1188 ; CHECK-NEXT: # fixup A - offset: 3, value: g16-5, kind: reloc_riprel_4byte
1189 ; CHECK-NEXT: jne b # TAILCALL
1190 ; CHECK-NEXT: # encoding: [0x75,A]
1191 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
1192 ; CHECK-NEXT: # %bb.1: # %a
1193 ; CHECK-NEXT: jmp a # TAILCALL
1194 ; CHECK-NEXT: # encoding: [0xeb,A]
1195 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
1198 %and = and i16 %load1, -4
1201 br i1 %cond, label %a, label %b
1203 a:
1204 tail call void @a()
1213 ; CHECK-LABEL: and8_imm_br:
1215 ; CHECK-NEXT: andb $-4, g8(%rip) # encoding: [0x80,0x25,A,A,A,A,0xfc]
1216 ; CHECK-NEXT: # fixup A - offset: 2, value: g8-5, kind: reloc_riprel_4byte
1217 ; CHECK-NEXT: jne b # TAILCALL
1218 ; CHECK-NEXT: # encoding: [0x75,A]
1219 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
1220 ; CHECK-NEXT: # %bb.1: # %a
1221 ; CHECK-NEXT: jmp a # TAILCALL
1222 ; CHECK-NEXT: # encoding: [0xeb,A]
1223 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
1226 %and = and i8 %load1, -4
1229 br i1 %cond, label %a, label %b
1231 a:
1232 tail call void @a()
1241 ; CHECK-LABEL: and64_reg_br:
1243 ; CHECK-NEXT: andq %rdi, g64(%rip) # encoding: [0x48,0x21,0x3d,A,A,A,A]
1244 ; CHECK-NEXT: # fixup A - offset: 3, value: g64-4, kind: reloc_riprel_4byte
1245 ; CHECK-NEXT: jne b # TAILCALL
1246 ; CHECK-NEXT: # encoding: [0x75,A]
1247 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
1248 ; CHECK-NEXT: # %bb.1: # %a
1249 ; CHECK-NEXT: jmp a # TAILCALL
1250 ; CHECK-NEXT: # encoding: [0xeb,A]
1251 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
1257 br i1 %cond, label %a, label %b
1259 a:
1260 tail call void @a()
1269 ; CHECK-LABEL: and32_reg_br:
1271 ; CHECK-NEXT: andl %edi, g32(%rip) # encoding: [0x21,0x3d,A,A,A,A]
1272 ; CHECK-NEXT: # fixup A - offset: 2, value: g32-4, kind: reloc_riprel_4byte
1273 ; CHECK-NEXT: jne b # TAILCALL
1274 ; CHECK-NEXT: # encoding: [0x75,A]
1275 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
1276 ; CHECK-NEXT: # %bb.1: # %a
1277 ; CHECK-NEXT: jmp a # TAILCALL
1278 ; CHECK-NEXT: # encoding: [0xeb,A]
1279 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
1285 br i1 %cond, label %a, label %b
1287 a:
1288 tail call void @a()
1297 ; CHECK-LABEL: and16_reg_br:
1299 ; CHECK-NEXT: andw %di, g16(%rip) # encoding: [0x66,0x21,0x3d,A,A,A,A]
1300 ; CHECK-NEXT: # fixup A - offset: 3, value: g16-4, kind: reloc_riprel_4byte
1301 ; CHECK-NEXT: jne b # TAILCALL
1302 ; CHECK-NEXT: # encoding: [0x75,A]
1303 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
1304 ; CHECK-NEXT: # %bb.1: # %a
1305 ; CHECK-NEXT: jmp a # TAILCALL
1306 ; CHECK-NEXT: # encoding: [0xeb,A]
1307 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
1313 br i1 %cond, label %a, label %b
1315 a:
1316 tail call void @a()
1325 ; CHECK-LABEL: and8_reg_br:
1327 ; CHECK-NEXT: andb %dil, g8(%rip) # encoding: [0x40,0x20,0x3d,A,A,A,A]
1328 ; CHECK-NEXT: # fixup A - offset: 3, value: g8-4, kind: reloc_riprel_4byte
1329 ; CHECK-NEXT: jne b # TAILCALL
1330 ; CHECK-NEXT: # encoding: [0x75,A]
1331 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
1332 ; CHECK-NEXT: # %bb.1: # %a
1333 ; CHECK-NEXT: jmp a # TAILCALL
1334 ; CHECK-NEXT: # encoding: [0xeb,A]
1335 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
1341 br i1 %cond, label %a, label %b
1343 a:
1344 tail call void @a()
1353 ; CHECK-LABEL: or64_imm32_br:
1355 ; CHECK-NEXT: orq $16777215, g64(%rip) # encoding: [0x48,0x81,0x0d,A,A,A,A,0xff,0xff,0xff,0x00]
1356 ; CHECK-NEXT: # fixup A - offset: 3, value: g64-8, kind: reloc_riprel_4byte
1357 ; CHECK-NEXT: # imm = 0xFFFFFF
1358 ; CHECK-NEXT: jne b # TAILCALL
1359 ; CHECK-NEXT: # encoding: [0x75,A]
1360 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
1361 ; CHECK-NEXT: # %bb.1: # %a
1362 ; CHECK-NEXT: jmp a # TAILCALL
1363 ; CHECK-NEXT: # encoding: [0xeb,A]
1364 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
1367 ; Or 0x00FFFFFF, a positive immediate requiring 24-bits.
1371 br i1 %cond, label %a, label %b
1373 a:
1374 tail call void @a()
1383 ; CHECK-LABEL: or64_sext_imm32_br:
1385 ; CHECK-NEXT: orq $-2147483648, g64(%rip) # encoding: [0x48,0x81,0x0d,A,A,A,A,0x00,0x00,0x00,0x8…
1386 ; CHECK-NEXT: # fixup A - offset: 3, value: g64-8, kind: reloc_riprel_4byte
1387 ; CHECK-NEXT: # imm = 0x80000000
1388 ; CHECK-NEXT: jne b # TAILCALL
1389 ; CHECK-NEXT: # encoding: [0x75,A]
1390 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
1391 ; CHECK-NEXT: # %bb.1: # %a
1392 ; CHECK-NEXT: jmp a # TAILCALL
1393 ; CHECK-NEXT: # encoding: [0xeb,A]
1394 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
1397 ; Or -0x80000000, which requires sign-extended 32 bits.
1398 %or = or i64 %load1, -2147483648
1401 br i1 %cond, label %a, label %b
1403 a:
1404 tail call void @a()
1413 ; CHECK-LABEL: or64_imm8_br:
1415 ; CHECK-NEXT: orq $15, g64(%rip) # encoding: [0x48,0x83,0x0d,A,A,A,A,0x0f]
1416 ; CHECK-NEXT: # fixup A - offset: 3, value: g64-5, kind: reloc_riprel_4byte
1417 ; CHECK-NEXT: jne b # TAILCALL
1418 ; CHECK-NEXT: # encoding: [0x75,A]
1419 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
1420 ; CHECK-NEXT: # %bb.1: # %a
1421 ; CHECK-NEXT: jmp a # TAILCALL
1422 ; CHECK-NEXT: # encoding: [0xeb,A]
1423 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
1429 br i1 %cond, label %a, label %b
1431 a:
1432 tail call void @a()
1441 ; CHECK-LABEL: or64_imm8_neg_br:
1443 ; CHECK-NEXT: orq $-4, g64(%rip) # encoding: [0x48,0x83,0x0d,A,A,A,A,0xfc]
1444 ; CHECK-NEXT: # fixup A - offset: 3, value: g64-5, kind: reloc_riprel_4byte
1445 ; CHECK-NEXT: jne b # TAILCALL
1446 ; CHECK-NEXT: # encoding: [0x75,A]
1447 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
1448 ; CHECK-NEXT: # %bb.1: # %a
1449 ; CHECK-NEXT: jmp a # TAILCALL
1450 ; CHECK-NEXT: # encoding: [0xeb,A]
1451 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
1454 %or = or i64 %load1, -4
1457 br i1 %cond, label %a, label %b
1459 a:
1460 tail call void @a()
1469 ; CHECK-LABEL: or32_imm_br:
1471 ; CHECK-NEXT: orl $-2147483648, g32(%rip) # encoding: [0x81,0x0d,A,A,A,A,0x00,0x00,0x00,0x80]
1472 ; CHECK-NEXT: # fixup A - offset: 2, value: g32-8, kind: reloc_riprel_4byte
1473 ; CHECK-NEXT: # imm = 0x80000000
1474 ; CHECK-NEXT: jne b # TAILCALL
1475 ; CHECK-NEXT: # encoding: [0x75,A]
1476 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
1477 ; CHECK-NEXT: # %bb.1: # %a
1478 ; CHECK-NEXT: jmp a # TAILCALL
1479 ; CHECK-NEXT: # encoding: [0xeb,A]
1480 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
1483 ; Or 0x80000000, a positive number requiring 32 bits of immediate.
1487 br i1 %cond, label %a, label %b
1489 a:
1490 tail call void @a()
1499 ; CHECK-LABEL: or32_imm8_br:
1501 ; CHECK-NEXT: orl $15, g32(%rip) # encoding: [0x83,0x0d,A,A,A,A,0x0f]
1502 ; CHECK-NEXT: # fixup A - offset: 2, value: g32-5, kind: reloc_riprel_4byte
1503 ; CHECK-NEXT: jne b # TAILCALL
1504 ; CHECK-NEXT: # encoding: [0x75,A]
1505 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
1506 ; CHECK-NEXT: # %bb.1: # %a
1507 ; CHECK-NEXT: jmp a # TAILCALL
1508 ; CHECK-NEXT: # encoding: [0xeb,A]
1509 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
1515 br i1 %cond, label %a, label %b
1517 a:
1518 tail call void @a()
1527 ; CHECK-LABEL: or32_imm8_neg_br:
1529 ; CHECK-NEXT: orl $-4, g32(%rip) # encoding: [0x83,0x0d,A,A,A,A,0xfc]
1530 ; CHECK-NEXT: # fixup A - offset: 2, value: g32-5, kind: reloc_riprel_4byte
1531 ; CHECK-NEXT: jne b # TAILCALL
1532 ; CHECK-NEXT: # encoding: [0x75,A]
1533 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
1534 ; CHECK-NEXT: # %bb.1: # %a
1535 ; CHECK-NEXT: jmp a # TAILCALL
1536 ; CHECK-NEXT: # encoding: [0xeb,A]
1537 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
1540 %or = or i32 %load1, -4
1543 br i1 %cond, label %a, label %b
1545 a:
1546 tail call void @a()
1555 ; CHECK-LABEL: or16_imm_br:
1557 ; CHECK-NEXT: orw $-32768, g16(%rip) # encoding: [0x66,0x81,0x0d,A,A,A,A,0x00,0x80]
1558 ; CHECK-NEXT: # fixup A - offset: 3, value: g16-6, kind: reloc_riprel_4byte
1559 ; CHECK-NEXT: # imm = 0x8000
1560 ; CHECK-NEXT: jne b # TAILCALL
1561 ; CHECK-NEXT: # encoding: [0x75,A]
1562 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
1563 ; CHECK-NEXT: # %bb.1: # %a
1564 ; CHECK-NEXT: jmp a # TAILCALL
1565 ; CHECK-NEXT: # encoding: [0xeb,A]
1566 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
1572 br i1 %cond, label %a, label %b
1574 a:
1575 tail call void @a()
1584 ; CHECK-LABEL: or16_imm8_br:
1586 ; CHECK-NEXT: orw $15, g16(%rip) # encoding: [0x66,0x83,0x0d,A,A,A,A,0x0f]
1587 ; CHECK-NEXT: # fixup A - offset: 3, value: g16-5, kind: reloc_riprel_4byte
1588 ; CHECK-NEXT: jne b # TAILCALL
1589 ; CHECK-NEXT: # encoding: [0x75,A]
1590 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
1591 ; CHECK-NEXT: # %bb.1: # %a
1592 ; CHECK-NEXT: jmp a # TAILCALL
1593 ; CHECK-NEXT: # encoding: [0xeb,A]
1594 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
1600 br i1 %cond, label %a, label %b
1602 a:
1603 tail call void @a()
1612 ; CHECK-LABEL: or16_imm8_neg_br:
1614 ; CHECK-NEXT: orw $-4, g16(%rip) # encoding: [0x66,0x83,0x0d,A,A,A,A,0xfc]
1615 ; CHECK-NEXT: # fixup A - offset: 3, value: g16-5, kind: reloc_riprel_4byte
1616 ; CHECK-NEXT: jne b # TAILCALL
1617 ; CHECK-NEXT: # encoding: [0x75,A]
1618 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
1619 ; CHECK-NEXT: # %bb.1: # %a
1620 ; CHECK-NEXT: jmp a # TAILCALL
1621 ; CHECK-NEXT: # encoding: [0xeb,A]
1622 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
1625 %or = or i16 %load1, -4
1628 br i1 %cond, label %a, label %b
1630 a:
1631 tail call void @a()
1640 ; CHECK-LABEL: or8_imm_br:
1642 ; CHECK-NEXT: orb $-4, g8(%rip) # encoding: [0x80,0x0d,A,A,A,A,0xfc]
1643 ; CHECK-NEXT: # fixup A - offset: 2, value: g8-5, kind: reloc_riprel_4byte
1644 ; CHECK-NEXT: jne b # TAILCALL
1645 ; CHECK-NEXT: # encoding: [0x75,A]
1646 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
1647 ; CHECK-NEXT: # %bb.1: # %a
1648 ; CHECK-NEXT: jmp a # TAILCALL
1649 ; CHECK-NEXT: # encoding: [0xeb,A]
1650 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
1653 %or = or i8 %load1, -4
1656 br i1 %cond, label %a, label %b
1658 a:
1659 tail call void @a()
1668 ; CHECK-LABEL: or64_reg_br:
1670 ; CHECK-NEXT: orq %rdi, g64(%rip) # encoding: [0x48,0x09,0x3d,A,A,A,A]
1671 ; CHECK-NEXT: # fixup A - offset: 3, value: g64-4, kind: reloc_riprel_4byte
1672 ; CHECK-NEXT: jne b # TAILCALL
1673 ; CHECK-NEXT: # encoding: [0x75,A]
1674 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
1675 ; CHECK-NEXT: # %bb.1: # %a
1676 ; CHECK-NEXT: jmp a # TAILCALL
1677 ; CHECK-NEXT: # encoding: [0xeb,A]
1678 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
1684 br i1 %cond, label %a, label %b
1686 a:
1687 tail call void @a()
1696 ; CHECK-LABEL: or32_reg_br:
1698 ; CHECK-NEXT: orl %edi, g32(%rip) # encoding: [0x09,0x3d,A,A,A,A]
1699 ; CHECK-NEXT: # fixup A - offset: 2, value: g32-4, kind: reloc_riprel_4byte
1700 ; CHECK-NEXT: jne b # TAILCALL
1701 ; CHECK-NEXT: # encoding: [0x75,A]
1702 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
1703 ; CHECK-NEXT: # %bb.1: # %a
1704 ; CHECK-NEXT: jmp a # TAILCALL
1705 ; CHECK-NEXT: # encoding: [0xeb,A]
1706 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
1712 br i1 %cond, label %a, label %b
1714 a:
1715 tail call void @a()
1724 ; CHECK-LABEL: or16_reg_br:
1726 ; CHECK-NEXT: orw %di, g16(%rip) # encoding: [0x66,0x09,0x3d,A,A,A,A]
1727 ; CHECK-NEXT: # fixup A - offset: 3, value: g16-4, kind: reloc_riprel_4byte
1728 ; CHECK-NEXT: jne b # TAILCALL
1729 ; CHECK-NEXT: # encoding: [0x75,A]
1730 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
1731 ; CHECK-NEXT: # %bb.1: # %a
1732 ; CHECK-NEXT: jmp a # TAILCALL
1733 ; CHECK-NEXT: # encoding: [0xeb,A]
1734 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
1740 br i1 %cond, label %a, label %b
1742 a:
1743 tail call void @a()
1752 ; CHECK-LABEL: or8_reg_br:
1754 ; CHECK-NEXT: orb %dil, g8(%rip) # encoding: [0x40,0x08,0x3d,A,A,A,A]
1755 ; CHECK-NEXT: # fixup A - offset: 3, value: g8-4, kind: reloc_riprel_4byte
1756 ; CHECK-NEXT: jne b # TAILCALL
1757 ; CHECK-NEXT: # encoding: [0x75,A]
1758 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
1759 ; CHECK-NEXT: # %bb.1: # %a
1760 ; CHECK-NEXT: jmp a # TAILCALL
1761 ; CHECK-NEXT: # encoding: [0xeb,A]
1762 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
1768 br i1 %cond, label %a, label %b
1770 a:
1771 tail call void @a()
1780 ; CHECK-LABEL: xor64_imm32_br:
1782 ; CHECK-NEXT: xorq $16777215, g64(%rip) # encoding: [0x48,0x81,0x35,A,A,A,A,0xff,0xff,0xff,0x00]
1783 ; CHECK-NEXT: # fixup A - offset: 3, value: g64-8, kind: reloc_riprel_4byte
1784 ; CHECK-NEXT: # imm = 0xFFFFFF
1785 ; CHECK-NEXT: jne b # TAILCALL
1786 ; CHECK-NEXT: # encoding: [0x75,A]
1787 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
1788 ; CHECK-NEXT: # %bb.1: # %a
1789 ; CHECK-NEXT: jmp a # TAILCALL
1790 ; CHECK-NEXT: # encoding: [0xeb,A]
1791 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
1794 ; Xor 0x00FFFFFF, a positive immediate requiring 24-bits.
1798 br i1 %cond, label %a, label %b
1800 a:
1801 tail call void @a()
1810 ; CHECK-LABEL: xor64_sext_imm32_br:
1812 ; CHECK-NEXT: xorq $-2147483648, g64(%rip) # encoding: [0x48,0x81,0x35,A,A,A,A,0x00,0x00,0x00,0x…
1813 ; CHECK-NEXT: # fixup A - offset: 3, value: g64-8, kind: reloc_riprel_4byte
1814 ; CHECK-NEXT: # imm = 0x80000000
1815 ; CHECK-NEXT: jne b # TAILCALL
1816 ; CHECK-NEXT: # encoding: [0x75,A]
1817 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
1818 ; CHECK-NEXT: # %bb.1: # %a
1819 ; CHECK-NEXT: jmp a # TAILCALL
1820 ; CHECK-NEXT: # encoding: [0xeb,A]
1821 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
1824 ; Xor -0x80000000, which requires sign-extended 32 bits.
1825 %xor = xor i64 %load1, -2147483648
1828 br i1 %cond, label %a, label %b
1830 a:
1831 tail call void @a()
1840 ; CHECK-LABEL: xor64_imm8_br:
1842 ; CHECK-NEXT: xorq $15, g64(%rip) # encoding: [0x48,0x83,0x35,A,A,A,A,0x0f]
1843 ; CHECK-NEXT: # fixup A - offset: 3, value: g64-5, kind: reloc_riprel_4byte
1844 ; CHECK-NEXT: jne b # TAILCALL
1845 ; CHECK-NEXT: # encoding: [0x75,A]
1846 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
1847 ; CHECK-NEXT: # %bb.1: # %a
1848 ; CHECK-NEXT: jmp a # TAILCALL
1849 ; CHECK-NEXT: # encoding: [0xeb,A]
1850 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
1856 br i1 %cond, label %a, label %b
1858 a:
1859 tail call void @a()
1868 ; CHECK-LABEL: xor64_imm8_neg_br:
1870 ; CHECK-NEXT: xorq $-4, g64(%rip) # encoding: [0x48,0x83,0x35,A,A,A,A,0xfc]
1871 ; CHECK-NEXT: # fixup A - offset: 3, value: g64-5, kind: reloc_riprel_4byte
1872 ; CHECK-NEXT: jne b # TAILCALL
1873 ; CHECK-NEXT: # encoding: [0x75,A]
1874 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
1875 ; CHECK-NEXT: # %bb.1: # %a
1876 ; CHECK-NEXT: jmp a # TAILCALL
1877 ; CHECK-NEXT: # encoding: [0xeb,A]
1878 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
1881 %xor = xor i64 %load1, -4
1884 br i1 %cond, label %a, label %b
1886 a:
1887 tail call void @a()
1896 ; CHECK-LABEL: xor32_imm_br:
1898 ; CHECK-NEXT: xorl $-2147483648, g32(%rip) # encoding: [0x81,0x35,A,A,A,A,0x00,0x00,0x00,0x80]
1899 ; CHECK-NEXT: # fixup A - offset: 2, value: g32-8, kind: reloc_riprel_4byte
1900 ; CHECK-NEXT: # imm = 0x80000000
1901 ; CHECK-NEXT: jne b # TAILCALL
1902 ; CHECK-NEXT: # encoding: [0x75,A]
1903 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
1904 ; CHECK-NEXT: # %bb.1: # %a
1905 ; CHECK-NEXT: jmp a # TAILCALL
1906 ; CHECK-NEXT: # encoding: [0xeb,A]
1907 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
1910 ; Xor 0x80000000, a positive number requiring 32 bits of immediate.
1914 br i1 %cond, label %a, label %b
1916 a:
1917 tail call void @a()
1926 ; CHECK-LABEL: xor32_imm8_br:
1928 ; CHECK-NEXT: xorl $15, g32(%rip) # encoding: [0x83,0x35,A,A,A,A,0x0f]
1929 ; CHECK-NEXT: # fixup A - offset: 2, value: g32-5, kind: reloc_riprel_4byte
1930 ; CHECK-NEXT: jne b # TAILCALL
1931 ; CHECK-NEXT: # encoding: [0x75,A]
1932 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
1933 ; CHECK-NEXT: # %bb.1: # %a
1934 ; CHECK-NEXT: jmp a # TAILCALL
1935 ; CHECK-NEXT: # encoding: [0xeb,A]
1936 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
1942 br i1 %cond, label %a, label %b
1944 a:
1945 tail call void @a()
1954 ; CHECK-LABEL: xor32_imm8_neg_br:
1956 ; CHECK-NEXT: xorl $-4, g32(%rip) # encoding: [0x83,0x35,A,A,A,A,0xfc]
1957 ; CHECK-NEXT: # fixup A - offset: 2, value: g32-5, kind: reloc_riprel_4byte
1958 ; CHECK-NEXT: jne b # TAILCALL
1959 ; CHECK-NEXT: # encoding: [0x75,A]
1960 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
1961 ; CHECK-NEXT: # %bb.1: # %a
1962 ; CHECK-NEXT: jmp a # TAILCALL
1963 ; CHECK-NEXT: # encoding: [0xeb,A]
1964 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
1967 %xor = xor i32 %load1, -4
1970 br i1 %cond, label %a, label %b
1972 a:
1973 tail call void @a()
1982 ; CHECK-LABEL: xor16_imm_br:
1984 ; CHECK-NEXT: xorw $-32768, g16(%rip) # encoding: [0x66,0x81,0x35,A,A,A,A,0x00,0x80]
1985 ; CHECK-NEXT: # fixup A - offset: 3, value: g16-6, kind: reloc_riprel_4byte
1986 ; CHECK-NEXT: # imm = 0x8000
1987 ; CHECK-NEXT: jne b # TAILCALL
1988 ; CHECK-NEXT: # encoding: [0x75,A]
1989 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
1990 ; CHECK-NEXT: # %bb.1: # %a
1991 ; CHECK-NEXT: jmp a # TAILCALL
1992 ; CHECK-NEXT: # encoding: [0xeb,A]
1993 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
1999 br i1 %cond, label %a, label %b
2001 a:
2002 tail call void @a()
2011 ; CHECK-LABEL: xor16_imm8_br:
2013 ; CHECK-NEXT: xorw $15, g16(%rip) # encoding: [0x66,0x83,0x35,A,A,A,A,0x0f]
2014 ; CHECK-NEXT: # fixup A - offset: 3, value: g16-5, kind: reloc_riprel_4byte
2015 ; CHECK-NEXT: jne b # TAILCALL
2016 ; CHECK-NEXT: # encoding: [0x75,A]
2017 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
2018 ; CHECK-NEXT: # %bb.1: # %a
2019 ; CHECK-NEXT: jmp a # TAILCALL
2020 ; CHECK-NEXT: # encoding: [0xeb,A]
2021 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
2027 br i1 %cond, label %a, label %b
2029 a:
2030 tail call void @a()
2039 ; CHECK-LABEL: xor16_imm8_neg_br:
2041 ; CHECK-NEXT: xorw $-4, g16(%rip) # encoding: [0x66,0x83,0x35,A,A,A,A,0xfc]
2042 ; CHECK-NEXT: # fixup A - offset: 3, value: g16-5, kind: reloc_riprel_4byte
2043 ; CHECK-NEXT: jne b # TAILCALL
2044 ; CHECK-NEXT: # encoding: [0x75,A]
2045 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
2046 ; CHECK-NEXT: # %bb.1: # %a
2047 ; CHECK-NEXT: jmp a # TAILCALL
2048 ; CHECK-NEXT: # encoding: [0xeb,A]
2049 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
2052 %xor = xor i16 %load1, -4
2055 br i1 %cond, label %a, label %b
2057 a:
2058 tail call void @a()
2067 ; CHECK-LABEL: xor8_imm_br:
2069 ; CHECK-NEXT: xorb $-4, g8(%rip) # encoding: [0x80,0x35,A,A,A,A,0xfc]
2070 ; CHECK-NEXT: # fixup A - offset: 2, value: g8-5, kind: reloc_riprel_4byte
2071 ; CHECK-NEXT: jne b # TAILCALL
2072 ; CHECK-NEXT: # encoding: [0x75,A]
2073 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
2074 ; CHECK-NEXT: # %bb.1: # %a
2075 ; CHECK-NEXT: jmp a # TAILCALL
2076 ; CHECK-NEXT: # encoding: [0xeb,A]
2077 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
2080 %xor = xor i8 %load1, -4
2083 br i1 %cond, label %a, label %b
2085 a:
2086 tail call void @a()
2095 ; CHECK-LABEL: xor64_reg_br:
2097 ; CHECK-NEXT: xorq %rdi, g64(%rip) # encoding: [0x48,0x31,0x3d,A,A,A,A]
2098 ; CHECK-NEXT: # fixup A - offset: 3, value: g64-4, kind: reloc_riprel_4byte
2099 ; CHECK-NEXT: jne b # TAILCALL
2100 ; CHECK-NEXT: # encoding: [0x75,A]
2101 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
2102 ; CHECK-NEXT: # %bb.1: # %a
2103 ; CHECK-NEXT: jmp a # TAILCALL
2104 ; CHECK-NEXT: # encoding: [0xeb,A]
2105 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
2111 br i1 %cond, label %a, label %b
2113 a:
2114 tail call void @a()
2123 ; CHECK-LABEL: xor32_reg_br:
2125 ; CHECK-NEXT: xorl %edi, g32(%rip) # encoding: [0x31,0x3d,A,A,A,A]
2126 ; CHECK-NEXT: # fixup A - offset: 2, value: g32-4, kind: reloc_riprel_4byte
2127 ; CHECK-NEXT: jne b # TAILCALL
2128 ; CHECK-NEXT: # encoding: [0x75,A]
2129 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
2130 ; CHECK-NEXT: # %bb.1: # %a
2131 ; CHECK-NEXT: jmp a # TAILCALL
2132 ; CHECK-NEXT: # encoding: [0xeb,A]
2133 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
2139 br i1 %cond, label %a, label %b
2141 a:
2142 tail call void @a()
2151 ; CHECK-LABEL: xor16_reg_br:
2153 ; CHECK-NEXT: xorw %di, g16(%rip) # encoding: [0x66,0x31,0x3d,A,A,A,A]
2154 ; CHECK-NEXT: # fixup A - offset: 3, value: g16-4, kind: reloc_riprel_4byte
2155 ; CHECK-NEXT: jne b # TAILCALL
2156 ; CHECK-NEXT: # encoding: [0x75,A]
2157 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
2158 ; CHECK-NEXT: # %bb.1: # %a
2159 ; CHECK-NEXT: jmp a # TAILCALL
2160 ; CHECK-NEXT: # encoding: [0xeb,A]
2161 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
2167 br i1 %cond, label %a, label %b
2169 a:
2170 tail call void @a()
2179 ; CHECK-LABEL: xor8_reg_br:
2181 ; CHECK-NEXT: xorb %dil, g8(%rip) # encoding: [0x40,0x30,0x3d,A,A,A,A]
2182 ; CHECK-NEXT: # fixup A - offset: 3, value: g8-4, kind: reloc_riprel_4byte
2183 ; CHECK-NEXT: jne b # TAILCALL
2184 ; CHECK-NEXT: # encoding: [0x75,A]
2185 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
2186 ; CHECK-NEXT: # %bb.1: # %a
2187 ; CHECK-NEXT: jmp a # TAILCALL
2188 ; CHECK-NEXT: # encoding: [0xeb,A]
2189 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
2195 br i1 %cond, label %a, label %b
2197 a:
2198 tail call void @a()
2207 ; CHECK-LABEL: neg64_br:
2209 ; CHECK-NEXT: negq g64(%rip) # encoding: [0x48,0xf7,0x1d,A,A,A,A]
2210 ; CHECK-NEXT: # fixup A - offset: 3, value: g64-4, kind: reloc_riprel_4byte
2211 ; CHECK-NEXT: jns b # TAILCALL
2212 ; CHECK-NEXT: # encoding: [0x79,A]
2213 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
2214 ; CHECK-NEXT: # %bb.1: # %a
2215 ; CHECK-NEXT: jmp a # TAILCALL
2216 ; CHECK-NEXT: # encoding: [0xeb,A]
2217 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
2223 br i1 %cond, label %a, label %b
2225 a:
2226 tail call void @a()
2235 ; CHECK-LABEL: neg32_br:
2237 ; CHECK-NEXT: negl g32(%rip) # encoding: [0xf7,0x1d,A,A,A,A]
2238 ; CHECK-NEXT: # fixup A - offset: 2, value: g32-4, kind: reloc_riprel_4byte
2239 ; CHECK-NEXT: jns b # TAILCALL
2240 ; CHECK-NEXT: # encoding: [0x79,A]
2241 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
2242 ; CHECK-NEXT: # %bb.1: # %a
2243 ; CHECK-NEXT: jmp a # TAILCALL
2244 ; CHECK-NEXT: # encoding: [0xeb,A]
2245 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
2251 br i1 %cond, label %a, label %b
2253 a:
2254 tail call void @a()
2263 ; CHECK-LABEL: neg16_br:
2265 ; CHECK-NEXT: negw g16(%rip) # encoding: [0x66,0xf7,0x1d,A,A,A,A]
2266 ; CHECK-NEXT: # fixup A - offset: 3, value: g16-4, kind: reloc_riprel_4byte
2267 ; CHECK-NEXT: jns b # TAILCALL
2268 ; CHECK-NEXT: # encoding: [0x79,A]
2269 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
2270 ; CHECK-NEXT: # %bb.1: # %a
2271 ; CHECK-NEXT: jmp a # TAILCALL
2272 ; CHECK-NEXT: # encoding: [0xeb,A]
2273 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
2279 br i1 %cond, label %a, label %b
2281 a:
2282 tail call void @a()
2291 ; CHECK-LABEL: neg8_br:
2293 ; CHECK-NEXT: negb g8(%rip) # encoding: [0xf6,0x1d,A,A,A,A]
2294 ; CHECK-NEXT: # fixup A - offset: 2, value: g8-4, kind: reloc_riprel_4byte
2295 ; CHECK-NEXT: jns b # TAILCALL
2296 ; CHECK-NEXT: # encoding: [0x79,A]
2297 ; CHECK-NEXT: # fixup A - offset: 1, value: b-1, kind: FK_PCRel_1
2298 ; CHECK-NEXT: # %bb.1: # %a
2299 ; CHECK-NEXT: jmp a # TAILCALL
2300 ; CHECK-NEXT: # encoding: [0xeb,A]
2301 ; CHECK-NEXT: # fixup A - offset: 1, value: a-1, kind: FK_PCRel_1
2307 br i1 %cond, label %a, label %b
2309 a:
2310 tail call void @a()