1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -run-pass x86-fixup-LEAs -mtriple=x86_64-gnu-unknown -verify-machineinstrs -mcpu=corei7-avx -o - %s | FileCheck %s
4 ; ModuleID = 'lea-2.ll'
5 source_filename = "lea-2.ll"
6 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
7 ;generated using: llc -stop-after x86-pad-short-functions lea-2.ll > leaFinxup64.mir
9 ;testleaadd_64_32_1: 3 operands LEA64_32r cannot be replaced with 2 add instructions
10 ; but can be replaced with 1 lea + 1 add
11 define i32 @testleaadd_64_32_1() {
15 ;testleaadd_rbp_64_32_1: 3 operands LEA64_32r cannot be replaced with 2 add instructions
16 ; where the base is rbp/r13/ebp register but it can be replaced with 1 lea + 1 add
17 define i32 @testleaadd_rbp_64_32_1() {
21 ;test1lea_rbp_64_32_1: 2 operands LEA64_32r where base register is rbp/r13/ebp and can not
22 ; be replaced with an add instruction but can be replaced with 1 lea instruction
23 define i32 @test1lea_rbp_64_32_1() {
27 ;test2add_64: 3 operands LEA64r that can be replaced with 2 add instructions
28 define i32 @test2add_64() {
32 ;test2add_rbp_64: 3 operands LEA64r that can be replaced with 2 add instructions
33 ; where the base is rbp/r13/ebp register
34 define i32 @test2add_rbp_64() {
38 ;test1add_rbp_64: 2 operands LEA64r where base register is rbp/r13/ebp and can be replaced
39 ; with an add instruction
40 define i32 @test1add_rbp_64() {
44 ;testleaadd_64_32: 3 operands LEA64_32r that can be replaced with 1 lea 1 add instructions
45 define i32 @testleaadd_64_32() {
49 ;testleaadd_rbp_64_32: 3 operands LEA64_32r that can be replaced with 1 lea 1 add instructions
50 ; where the base is rbp/r13/ebp register
51 define i32 @testleaadd_rbp_64_32() {
55 ;test1lea_rbp_64_32: 2 operands LEA64_32r where base register is rbp/r13/ebp and can be replaced
56 ; with a lea instruction
57 define i32 @test1lea_rbp_64_32() {
61 ;testleaadd_64: 3 operands LEA64r that can be replaced with 1 lea 1 add instructions
62 define i32 @testleaadd_64() {
66 ;testleaadd_rbp_64: 3 operands LEA64r that can be replaced with 1 lea 1 add instructions
67 ; where the base is rbp/r13/ebp register
68 define i32 @testleaadd_rbp_64() {
72 ;test1lea_rbp_64: 2 operands LEA64r wher base register is rbp/r13/ebp and can be replaced
73 ; with a lea instruction
74 define i32 @test1lea_rbp_64() {
78 ;test8: dst = base & scale!=1, can't optimize
83 ;testleaaddi32_64_32: 3 operands LEA64_32r that can be replaced with 1 lea + 1 add instructions where
85 define i32 @testleaaddi32_64_32() {
89 ;test_leab_rbp_leais_64_32: 2 operands LEA64_32r that can be replaced with LEA_IS form
90 ; where the base is rbp/r13/ebp register
91 define i32 @test_leab_rbp_leais_64_32() {
95 ;test_leabi_rbp_leais_64_32: 3 operands LEA64_32r that can be replaced with LEA_IS form
96 ; where the base and the index are ebp register and there is offset
97 define i32 @test_leabi_rbp_leais_64_32() {
101 ;testleaadd_rbp_index2_64_32: 3 operands LEA64_32r that cannot replaced with 1 lea 1 add instructions
102 ; where the base and the index are ebp register and there is scale
103 define i32 @testleaadd_rbp_index2_64_32() {
107 ;test2addi32_64: 3 operands LEA64r that can be replaced with 2 add instructions where ADD64ri32
109 define i32 @test2addi32_64() {
113 ;test_leab_rbp_leais_64: 2 operands LEA64r that can be replaced with LEA_IS form
114 ; where the base is rbp/r13/ebp register
115 define i32 @test_leab_rbp_leais_64() {
119 ;test_leabi_rbp_leais_64: 3 operands LEA64r that can be replaced with LEA_IS form
120 ; where the base and the index are ebp register and there is offset
121 define i32 @test_leabi_rbp_leais_64() {
125 ;testleaadd_rbp_index2_64: 3 operands LEA64r that can be replaced with 1 lea 1 add instructions
126 ; where the base and the index are ebp register and there is scale
127 define i32 @testleaadd_rbp_index2_64() {
131 ;test_skip_opt_64: 3 operands LEA64r that can not be replaced with 2 instructions
132 define i32 @test_skip_opt_64() {
136 ;test_skip_eflags_64: LEA64r that cannot be replaced since its not safe to clobber eflags
137 define i32 @test_skip_eflags_64() {
141 ;test_skip_opt_64_32: 3 operands LEA64_32r that can not be replaced with 2 instructions
142 define i32 @test_skip_opt_64_32() {
146 ;test_skip_eflags_64_32: LEA64_32r that cannot be replaced since its not safe to clobber eflags
147 define i32 @test_skip_eflags_64_32() {
151 define i32 @pr43758() {
158 name: testleaadd_64_32_1
160 exposesReturnsTwice: false
162 regBankSelected: false
164 tracksRegLiveness: true
169 isFrameAddressTaken: false
170 isReturnAddressTaken: false
179 hasOpaqueSPAdjustment: false
181 hasMustTailInVarArgFunc: false
186 ; CHECK-LABEL: name: testleaadd_64_32_1
187 ; CHECK: liveins: $rax, $rbp
188 ; CHECK: $eax = ADD32rr $eax, $ebp, implicit-def $eflags, implicit $rax, implicit $rbp
189 ; CHECK: $eax = ADD32ri $eax, -5, implicit-def $eflags
191 $eax = LEA64_32r killed $rax, 1, killed $rbp, -5, $noreg
196 name: testleaadd_rbp_64_32_1
198 exposesReturnsTwice: false
200 regBankSelected: false
202 tracksRegLiveness: true
207 isFrameAddressTaken: false
208 isReturnAddressTaken: false
217 hasOpaqueSPAdjustment: false
219 hasMustTailInVarArgFunc: false
224 ; CHECK-LABEL: name: testleaadd_rbp_64_32_1
225 ; CHECK: liveins: $rax, $rbp
226 ; CHECK: $ebp = ADD32rr $ebp, $eax, implicit-def $eflags, implicit $rbp, implicit $rax
227 ; CHECK: $ebp = ADD32ri $ebp, -5, implicit-def $eflags
229 $ebp = LEA64_32r killed $rbp, 1, killed $rax, -5, $noreg
234 name: test1lea_rbp_64_32_1
236 exposesReturnsTwice: false
238 regBankSelected: false
240 tracksRegLiveness: true
245 isFrameAddressTaken: false
246 isReturnAddressTaken: false
255 hasOpaqueSPAdjustment: false
257 hasMustTailInVarArgFunc: false
262 ; CHECK-LABEL: name: test1lea_rbp_64_32_1
263 ; CHECK: liveins: $rax, $rbp
264 ; CHECK: $ebp = ADD32rr $ebp, $eax, implicit-def $eflags, implicit $rbp, implicit $rax
266 $ebp = LEA64_32r killed $rbp, 1, killed $rax, 0, $noreg
273 exposesReturnsTwice: false
275 regBankSelected: false
277 tracksRegLiveness: true
282 isFrameAddressTaken: false
283 isReturnAddressTaken: false
292 hasOpaqueSPAdjustment: false
294 hasMustTailInVarArgFunc: false
299 ; CHECK-LABEL: name: test2add_64
300 ; CHECK: liveins: $rax, $rbp
301 ; CHECK: $rax = ADD64rr $rax, $rbp, implicit-def $eflags
302 ; CHECK: $rax = ADD64ri32 $rax, -5, implicit-def $eflags
304 $rax = LEA64r killed $rax, 1, killed $rbp, -5, $noreg
309 name: test2add_rbp_64
311 exposesReturnsTwice: false
313 regBankSelected: false
315 tracksRegLiveness: true
320 isFrameAddressTaken: false
321 isReturnAddressTaken: false
330 hasOpaqueSPAdjustment: false
332 hasMustTailInVarArgFunc: false
337 ; CHECK-LABEL: name: test2add_rbp_64
338 ; CHECK: liveins: $rax, $rbp
339 ; CHECK: $rbp = ADD64rr $rbp, $rax, implicit-def $eflags
340 ; CHECK: $rbp = ADD64ri32 $rbp, -5, implicit-def $eflags
342 $rbp = LEA64r killed $rbp, 1, killed $rax, -5, $noreg
347 name: test1add_rbp_64
349 exposesReturnsTwice: false
351 regBankSelected: false
353 tracksRegLiveness: true
358 isFrameAddressTaken: false
359 isReturnAddressTaken: false
368 hasOpaqueSPAdjustment: false
370 hasMustTailInVarArgFunc: false
375 ; CHECK-LABEL: name: test1add_rbp_64
376 ; CHECK: liveins: $rax, $rbp
377 ; CHECK: $rbp = ADD64rr $rbp, $rax, implicit-def $eflags
379 $rbp = LEA64r killed $rbp, 1, killed $rax, 0, $noreg
384 name: testleaadd_64_32
386 exposesReturnsTwice: false
388 regBankSelected: false
390 tracksRegLiveness: true
396 isFrameAddressTaken: false
397 isReturnAddressTaken: false
406 hasOpaqueSPAdjustment: false
408 hasMustTailInVarArgFunc: false
413 ; CHECK-LABEL: name: testleaadd_64_32
414 ; CHECK: liveins: $rax, $rbp
415 ; CHECK: $ebx = LEA64_32r killed $rax, 1, killed $rbp, 0, $noreg
416 ; CHECK: $ebx = ADD32ri $ebx, -5, implicit-def $eflags
418 $ebx = LEA64_32r killed $rax, 1, killed $rbp, -5, $noreg
423 name: testleaadd_rbp_64_32
425 exposesReturnsTwice: false
427 regBankSelected: false
429 tracksRegLiveness: true
435 isFrameAddressTaken: false
436 isReturnAddressTaken: false
445 hasOpaqueSPAdjustment: false
447 hasMustTailInVarArgFunc: false
452 ; CHECK-LABEL: name: testleaadd_rbp_64_32
453 ; CHECK: liveins: $rax, $rbp
454 ; CHECK: $ebx = LEA64_32r killed $rax, 1, killed $rbp, 0, $noreg
455 ; CHECK: $ebx = ADD32ri $ebx, -5, implicit-def $eflags
457 $ebx = LEA64_32r killed $rbp, 1, killed $rax, -5, $noreg
462 name: test1lea_rbp_64_32
464 exposesReturnsTwice: false
466 regBankSelected: false
468 tracksRegLiveness: true
474 isFrameAddressTaken: false
475 isReturnAddressTaken: false
484 hasOpaqueSPAdjustment: false
486 hasMustTailInVarArgFunc: false
491 ; CHECK-LABEL: name: test1lea_rbp_64_32
492 ; CHECK: liveins: $rax, $rbp
493 ; CHECK: $ebx = LEA64_32r killed $rax, 1, killed $rbp, 0, $noreg
495 $ebx = LEA64_32r killed $rbp, 1, killed $rax, 0, $noreg
502 exposesReturnsTwice: false
504 regBankSelected: false
506 tracksRegLiveness: true
512 isFrameAddressTaken: false
513 isReturnAddressTaken: false
522 hasOpaqueSPAdjustment: false
524 hasMustTailInVarArgFunc: false
529 ; CHECK-LABEL: name: testleaadd_64
530 ; CHECK: liveins: $rax, $rbp
531 ; CHECK: $rbx = LEA64r killed $rax, 1, killed $rbp, 0, $noreg
532 ; CHECK: $rbx = ADD64ri32 $rbx, -5, implicit-def $eflags
534 $rbx = LEA64r killed $rax, 1, killed $rbp, -5, $noreg
539 name: testleaadd_rbp_64
541 exposesReturnsTwice: false
543 regBankSelected: false
545 tracksRegLiveness: true
551 isFrameAddressTaken: false
552 isReturnAddressTaken: false
561 hasOpaqueSPAdjustment: false
563 hasMustTailInVarArgFunc: false
568 ; CHECK-LABEL: name: testleaadd_rbp_64
569 ; CHECK: liveins: $rax, $rbp
570 ; CHECK: $rbx = LEA64r killed $rax, 1, killed $rbp, 0, $noreg
571 ; CHECK: $rbx = ADD64ri32 $rbx, -5, implicit-def $eflags
573 $rbx = LEA64r killed $rbp, 1, killed $rax, -5, $noreg
578 name: test1lea_rbp_64
580 exposesReturnsTwice: false
582 regBankSelected: false
584 tracksRegLiveness: true
590 isFrameAddressTaken: false
591 isReturnAddressTaken: false
600 hasOpaqueSPAdjustment: false
602 hasMustTailInVarArgFunc: false
607 ; CHECK-LABEL: name: test1lea_rbp_64
608 ; CHECK: liveins: $rax, $rbp
609 ; CHECK: $rbx = LEA64r killed $rax, 1, killed $rbp, 0, $noreg
611 $rbx = LEA64r killed $rbp, 1, killed $rax, 0, $noreg
618 exposesReturnsTwice: false
620 regBankSelected: false
622 tracksRegLiveness: true
627 isFrameAddressTaken: false
628 isReturnAddressTaken: false
637 hasOpaqueSPAdjustment: false
639 hasMustTailInVarArgFunc: false
643 ; CHECK-LABEL: name: test8
644 ; CHECK: liveins: $rdi, $rbp
645 ; CHECK: $rbp = KILL $rbp, implicit-def $rbp
646 ; CHECK: $r13 = KILL $rdi, implicit-def $r13
647 ; CHECK: $r12 = LEA64r $noreg, 2, killed $r13, 5, $noreg
648 ; CHECK: $r12 = ADD64rr $r12, killed $rbp, implicit-def $eflags
650 $rbp = KILL $rbp, implicit-def $rbp
651 $r13 = KILL $rdi, implicit-def $r13
652 $r12 = LEA64r killed $rbp, 2, killed $r13, 5, $noreg
657 name: testleaaddi32_64_32
659 exposesReturnsTwice: false
661 regBankSelected: false
663 tracksRegLiveness: true
668 isFrameAddressTaken: false
669 isReturnAddressTaken: false
678 hasOpaqueSPAdjustment: false
680 hasMustTailInVarArgFunc: false
685 ; CHECK-LABEL: name: testleaaddi32_64_32
686 ; CHECK: liveins: $rax, $rbp
687 ; CHECK: $eax = ADD32rr $eax, $ebp, implicit-def $eflags, implicit $rax, implicit $rbp
688 ; CHECK: $eax = ADD32ri $eax, 129, implicit-def $eflags
690 $eax = LEA64_32r killed $rax, 1, killed $rbp, 129, $noreg
695 name: test_leab_rbp_leais_64_32
697 exposesReturnsTwice: false
699 regBankSelected: false
701 tracksRegLiveness: true
706 isFrameAddressTaken: false
707 isReturnAddressTaken: false
716 hasOpaqueSPAdjustment: false
718 hasMustTailInVarArgFunc: false
721 liveins: $rax, $rbp, $rbx
723 ; CHECK-LABEL: name: test_leab_rbp_leais_64_32
724 ; CHECK: liveins: $rax, $rbp, $rbx
725 ; CHECK: $ebx = LEA64_32r $noreg, 2, killed $rbp, 0, $noreg
727 $ebx = LEA64_32r killed $rbp, 1, killed $rbp, 0, $noreg
732 name: test_leabi_rbp_leais_64_32
734 exposesReturnsTwice: false
736 regBankSelected: false
738 tracksRegLiveness: true
743 isFrameAddressTaken: false
744 isReturnAddressTaken: false
753 hasOpaqueSPAdjustment: false
755 hasMustTailInVarArgFunc: false
758 liveins: $rax, $rbp, $rbx
760 ; CHECK-LABEL: name: test_leabi_rbp_leais_64_32
761 ; CHECK: liveins: $rax, $rbp, $rbx
762 ; CHECK: $ebx = LEA64_32r $noreg, 2, killed $rbp, 5, $noreg
764 $ebx = LEA64_32r killed $rbp, 1, killed $rbp, 5, $noreg
769 name: testleaadd_rbp_index2_64_32
771 exposesReturnsTwice: false
773 regBankSelected: false
775 tracksRegLiveness: true
780 isFrameAddressTaken: false
781 isReturnAddressTaken: false
790 hasOpaqueSPAdjustment: false
792 hasMustTailInVarArgFunc: false
795 liveins: $eax, $ebp, $ebx
797 ; CHECK-LABEL: name: testleaadd_rbp_index2_64_32
798 ; CHECK: liveins: $eax, $ebp, $ebx
799 ; CHECK: $ebx = LEA64_32r killed $rbp, 4, killed $rbp, 5, $noreg
801 $ebx = LEA64_32r killed $rbp, 4, killed $rbp, 5, $noreg
808 exposesReturnsTwice: false
810 regBankSelected: false
812 tracksRegLiveness: true
817 isFrameAddressTaken: false
818 isReturnAddressTaken: false
827 hasOpaqueSPAdjustment: false
829 hasMustTailInVarArgFunc: false
834 ; CHECK-LABEL: name: test2addi32_64
835 ; CHECK: liveins: $rax, $rbp
836 ; CHECK: $rax = ADD64rr $rax, $rbp, implicit-def $eflags
837 ; CHECK: $rax = ADD64ri32 $rax, 129, implicit-def $eflags
839 $rax = LEA64r killed $rax, 1, killed $rbp, 129, $noreg
844 name: test_leab_rbp_leais_64
846 exposesReturnsTwice: false
848 regBankSelected: false
850 tracksRegLiveness: true
855 isFrameAddressTaken: false
856 isReturnAddressTaken: false
865 hasOpaqueSPAdjustment: false
867 hasMustTailInVarArgFunc: false
870 liveins: $rax, $rbp, $rbx
872 ; CHECK-LABEL: name: test_leab_rbp_leais_64
873 ; CHECK: liveins: $rax, $rbp, $rbx
874 ; CHECK: $rbx = LEA64r $noreg, 2, $rbp, 0, $noreg
876 $rbx = LEA64r killed $rbp, 1, $rbp, 0, $noreg
881 name: test_leabi_rbp_leais_64
883 exposesReturnsTwice: false
885 regBankSelected: false
887 tracksRegLiveness: true
892 isFrameAddressTaken: false
893 isReturnAddressTaken: false
902 hasOpaqueSPAdjustment: false
904 hasMustTailInVarArgFunc: false
907 liveins: $rax, $rbp, $rbx
909 ; CHECK-LABEL: name: test_leabi_rbp_leais_64
910 ; CHECK: liveins: $rax, $rbp, $rbx
911 ; CHECK: $rbx = LEA64r $noreg, 2, $rbp, 5, $noreg
913 $rbx = LEA64r $rbp, 1, $rbp, 5, $noreg
918 name: testleaadd_rbp_index2_64
920 exposesReturnsTwice: false
922 regBankSelected: false
924 tracksRegLiveness: true
929 isFrameAddressTaken: false
930 isReturnAddressTaken: false
939 hasOpaqueSPAdjustment: false
941 hasMustTailInVarArgFunc: false
944 liveins: $rax, $rbp, $rbx
946 ; CHECK-LABEL: name: testleaadd_rbp_index2_64
947 ; CHECK: liveins: $rax, $rbp, $rbx
948 ; CHECK: $rbx = LEA64r $noreg, 4, $rbp, 5, $noreg
949 ; CHECK: $rbx = ADD64rr $rbx, $rbp, implicit-def $eflags
951 $rbx = LEA64r $rbp, 4, $rbp, 5, $noreg
956 name: test_skip_opt_64
958 exposesReturnsTwice: false
960 regBankSelected: false
962 tracksRegLiveness: true
967 isFrameAddressTaken: false
968 isReturnAddressTaken: false
977 hasOpaqueSPAdjustment: false
979 hasMustTailInVarArgFunc: false
982 liveins: $rax, $rbp, $rbx
984 ; CHECK-LABEL: name: test_skip_opt_64
985 ; CHECK: liveins: $rax, $rbp, $rbx
986 ; CHECK: $rbp = LEA64r killed $rbp, 4, killed $rbp, 0, $noreg
988 $rbp = LEA64r killed $rbp, 4, killed $rbp, 0, $noreg
993 name: test_skip_eflags_64
995 exposesReturnsTwice: false
997 regBankSelected: false
999 tracksRegLiveness: true
1004 isFrameAddressTaken: false
1005 isReturnAddressTaken: false
1007 hasPatchPoint: false
1014 hasOpaqueSPAdjustment: false
1016 hasMustTailInVarArgFunc: false
1018 ; CHECK-LABEL: name: test_skip_eflags_64
1019 ; CHECK: bb.0 (%ir-block.0):
1020 ; CHECK: successors: %bb.1(0x80000000)
1021 ; CHECK: liveins: $rax, $rbp, $rbx
1022 ; CHECK: CMP64rr $rax, killed $rbx, implicit-def $eflags
1023 ; CHECK: $rbx = LEA64r killed $rax, 4, killed $rax, 5, $noreg
1024 ; CHECK: JCC_1 %bb.1, 4, implicit $eflags
1027 ; CHECK: liveins: $rax, $rbp, $rbx
1028 ; CHECK: $rbp = LEA64r killed $rbx, 4, killed $rbx, 0, $noreg
1029 ; CHECK: $rbp = ADD64ri32 $rbp, 5, implicit-def $eflags
1032 liveins: $rax, $rbp, $rbx
1034 CMP64rr $rax, killed $rbx, implicit-def $eflags
1035 $rbx = LEA64r killed $rax, 4, killed $rax, 5, $noreg
1036 JCC_1 %bb.1, 4, implicit $eflags
1039 liveins: $rax, $rbp, $rbx
1040 $rbp = LEA64r killed $rbx, 4, killed $rbx, 5, $noreg
1045 name: test_skip_opt_64_32
1047 exposesReturnsTwice: false
1049 regBankSelected: false
1051 tracksRegLiveness: true
1056 isFrameAddressTaken: false
1057 isReturnAddressTaken: false
1059 hasPatchPoint: false
1066 hasOpaqueSPAdjustment: false
1068 hasMustTailInVarArgFunc: false
1071 liveins: $rax, $rbp, $rbx
1073 ; CHECK-LABEL: name: test_skip_opt_64_32
1074 ; CHECK: liveins: $rax, $rbp, $rbx
1075 ; CHECK: $ebp = LEA64_32r killed $rbp, 4, killed $rbp, 0, $noreg
1077 $ebp = LEA64_32r killed $rbp, 4, killed $rbp, 0, $noreg
1082 name: test_skip_eflags_64_32
1084 exposesReturnsTwice: false
1086 regBankSelected: false
1088 tracksRegLiveness: true
1093 isFrameAddressTaken: false
1094 isReturnAddressTaken: false
1096 hasPatchPoint: false
1103 hasOpaqueSPAdjustment: false
1105 hasMustTailInVarArgFunc: false
1107 ; CHECK-LABEL: name: test_skip_eflags_64_32
1108 ; CHECK: bb.0 (%ir-block.0):
1109 ; CHECK: successors: %bb.1(0x80000000)
1110 ; CHECK: liveins: $rax, $rbp, $rbx
1111 ; CHECK: CMP64rr $rax, killed $rbx, implicit-def $eflags
1112 ; CHECK: $ebx = LEA64_32r killed $rax, 4, killed $rax, 5, $noreg
1113 ; CHECK: JCC_1 %bb.1, 4, implicit $eflags
1116 ; CHECK: liveins: $rax, $rbp, $rbx
1117 ; CHECK: $ebp = LEA64_32r killed $rbx, 4, killed $rbx, 0, $noreg
1118 ; CHECK: $ebp = ADD32ri $ebp, 5, implicit-def $eflags
1121 liveins: $rax, $rbp, $rbx
1123 CMP64rr $rax, killed $rbx, implicit-def $eflags
1124 $ebx = LEA64_32r killed $rax, 4, killed $rax, 5, $noreg
1125 JCC_1 %bb.1, 4, implicit $eflags
1128 liveins: $rax, $rbp, $rbx
1129 $ebp = LEA64_32r killed $rbx, 4, killed $rbx, 5, $noreg
1136 exposesReturnsTwice: false
1138 regBankSelected: false
1140 tracksRegLiveness: true
1145 isFrameAddressTaken: false
1146 isReturnAddressTaken: false
1148 hasPatchPoint: false
1155 hasOpaqueSPAdjustment: false
1157 hasMustTailInVarArgFunc: false
1162 ; CHECK-LABEL: name: pr43758
1163 ; CHECK: liveins: $rax, $rbp
1164 ; CHECK: DBG_VALUE 0, $noreg
1169 ; CHECK: $ebp = ADD32rr $ebp, $eax, implicit-def $eflags, implicit $rbp, implicit $rax
1180 $ebp = LEA64_32r killed $rbp, 1, killed $rax, 0, $noreg