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 ;test1mov1add_rbp_64_32: 2 operands LEA64_32r cannot be replaced with 1 add 1 mov instructions
90 ; where the base is rbp/r13/ebp register
91 define i32 @test1mov1add_rbp_64_32() {
95 ;testleaadd_rbp_index_64_32: 3 operands LEA64_32r that cannot replaced with 1 lea 1 add instructions
96 ; where the base and the index are ebp register and there is offset
97 define i32 @testleaadd_rbp_index_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 ;test1mov1add_rbp_64: 2 operands LEA64r that can be replaced with 1 add 1 mov instructions
114 ; where the base is rbp/r13/ebp register
115 define i32 @test1mov1add_rbp_64() {
119 ;testleaadd_rbp_index_64: 3 operands LEA64r that can be replaced with 1 lea 1 add instructions
120 ; where the base and the index are ebp register and there is offset
121 define i32 @testleaadd_rbp_index_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 = ADD32ri8 $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 = ADD32ri8 $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 = ADD64ri8 $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 = ADD64ri8 $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 = ADD32ri8 $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 = ADD32ri8 $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 = ADD64ri8 $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 = ADD64ri8 $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: test1mov1add_rbp_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: test1mov1add_rbp_64_32
724 ; CHECK: liveins: $rax, $rbp, $rbx
725 ; CHECK: $ebx = LEA64_32r killed $rbp, 1, killed $rbp, 0, $noreg
727 $ebx = LEA64_32r killed $rbp, 1, killed $rbp, 0, $noreg
732 name: testleaadd_rbp_index_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: testleaadd_rbp_index_64_32
761 ; CHECK: liveins: $rax, $rbp, $rbx
762 ; CHECK: $ebx = LEA64_32r killed $rbp, 1, 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: test1mov1add_rbp_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: test1mov1add_rbp_64
873 ; CHECK: liveins: $rax, $rbp, $rbx
874 ; CHECK: $rbx = MOV64rr $rbp
875 ; CHECK: $rbx = ADD64rr $rbx, $rbp, implicit-def $eflags
877 $rbx = LEA64r killed $rbp, 1, $rbp, 0, $noreg
882 name: testleaadd_rbp_index_64
884 exposesReturnsTwice: false
886 regBankSelected: false
888 tracksRegLiveness: true
893 isFrameAddressTaken: false
894 isReturnAddressTaken: false
903 hasOpaqueSPAdjustment: false
905 hasMustTailInVarArgFunc: false
908 liveins: $rax, $rbp, $rbx
910 ; CHECK-LABEL: name: testleaadd_rbp_index_64
911 ; CHECK: liveins: $rax, $rbp, $rbx
912 ; CHECK: $rbx = LEA64r $noreg, 1, $rbp, 5, $noreg
913 ; CHECK: $rbx = ADD64rr $rbx, $rbp, implicit-def $eflags
915 $rbx = LEA64r $rbp, 1, $rbp, 5, $noreg
920 name: testleaadd_rbp_index2_64
922 exposesReturnsTwice: false
924 regBankSelected: false
926 tracksRegLiveness: true
931 isFrameAddressTaken: false
932 isReturnAddressTaken: false
941 hasOpaqueSPAdjustment: false
943 hasMustTailInVarArgFunc: false
946 liveins: $rax, $rbp, $rbx
948 ; CHECK-LABEL: name: testleaadd_rbp_index2_64
949 ; CHECK: liveins: $rax, $rbp, $rbx
950 ; CHECK: $rbx = LEA64r $noreg, 4, $rbp, 5, $noreg
951 ; CHECK: $rbx = ADD64rr $rbx, $rbp, implicit-def $eflags
953 $rbx = LEA64r $rbp, 4, $rbp, 5, $noreg
958 name: test_skip_opt_64
960 exposesReturnsTwice: false
962 regBankSelected: false
964 tracksRegLiveness: true
969 isFrameAddressTaken: false
970 isReturnAddressTaken: false
979 hasOpaqueSPAdjustment: false
981 hasMustTailInVarArgFunc: false
984 liveins: $rax, $rbp, $rbx
986 ; CHECK-LABEL: name: test_skip_opt_64
987 ; CHECK: liveins: $rax, $rbp, $rbx
988 ; CHECK: $rbp = LEA64r killed $rbp, 4, killed $rbp, 0, $noreg
990 $rbp = LEA64r killed $rbp, 4, killed $rbp, 0, $noreg
995 name: test_skip_eflags_64
997 exposesReturnsTwice: false
999 regBankSelected: false
1001 tracksRegLiveness: true
1006 isFrameAddressTaken: false
1007 isReturnAddressTaken: false
1009 hasPatchPoint: false
1016 hasOpaqueSPAdjustment: false
1018 hasMustTailInVarArgFunc: false
1020 ; CHECK-LABEL: name: test_skip_eflags_64
1021 ; CHECK: bb.0 (%ir-block.0):
1022 ; CHECK: successors: %bb.1(0x80000000)
1023 ; CHECK: liveins: $rax, $rbp, $rbx
1024 ; CHECK: CMP64rr $rax, killed $rbx, implicit-def $eflags
1025 ; CHECK: $rbx = LEA64r killed $rax, 4, killed $rax, 5, $noreg
1026 ; CHECK: JCC_1 %bb.1, 4, implicit $eflags
1029 ; CHECK: liveins: $rax, $rbp, $rbx
1030 ; CHECK: $rbp = LEA64r killed $rbx, 4, killed $rbx, 0, $noreg
1031 ; CHECK: $rbp = ADD64ri8 $rbp, 5, implicit-def $eflags
1034 liveins: $rax, $rbp, $rbx
1036 CMP64rr $rax, killed $rbx, implicit-def $eflags
1037 $rbx = LEA64r killed $rax, 4, killed $rax, 5, $noreg
1038 JCC_1 %bb.1, 4, implicit $eflags
1041 liveins: $rax, $rbp, $rbx
1042 $rbp = LEA64r killed $rbx, 4, killed $rbx, 5, $noreg
1047 name: test_skip_opt_64_32
1049 exposesReturnsTwice: false
1051 regBankSelected: false
1053 tracksRegLiveness: true
1058 isFrameAddressTaken: false
1059 isReturnAddressTaken: false
1061 hasPatchPoint: false
1068 hasOpaqueSPAdjustment: false
1070 hasMustTailInVarArgFunc: false
1073 liveins: $rax, $rbp, $rbx
1075 ; CHECK-LABEL: name: test_skip_opt_64_32
1076 ; CHECK: liveins: $rax, $rbp, $rbx
1077 ; CHECK: $ebp = LEA64_32r killed $rbp, 4, killed $rbp, 0, $noreg
1079 $ebp = LEA64_32r killed $rbp, 4, killed $rbp, 0, $noreg
1084 name: test_skip_eflags_64_32
1086 exposesReturnsTwice: false
1088 regBankSelected: false
1090 tracksRegLiveness: true
1095 isFrameAddressTaken: false
1096 isReturnAddressTaken: false
1098 hasPatchPoint: false
1105 hasOpaqueSPAdjustment: false
1107 hasMustTailInVarArgFunc: false
1109 ; CHECK-LABEL: name: test_skip_eflags_64_32
1110 ; CHECK: bb.0 (%ir-block.0):
1111 ; CHECK: successors: %bb.1(0x80000000)
1112 ; CHECK: liveins: $rax, $rbp, $rbx
1113 ; CHECK: CMP64rr $rax, killed $rbx, implicit-def $eflags
1114 ; CHECK: $ebx = LEA64_32r killed $rax, 4, killed $rax, 5, $noreg
1115 ; CHECK: JCC_1 %bb.1, 4, implicit $eflags
1118 ; CHECK: liveins: $rax, $rbp, $rbx
1119 ; CHECK: $ebp = LEA64_32r killed $rbx, 4, killed $rbx, 0, $noreg
1120 ; CHECK: $ebp = ADD32ri8 $ebp, 5, implicit-def $eflags
1123 liveins: $rax, $rbp, $rbx
1125 CMP64rr $rax, killed $rbx, implicit-def $eflags
1126 $ebx = LEA64_32r killed $rax, 4, killed $rax, 5, $noreg
1127 JCC_1 %bb.1, 4, implicit $eflags
1130 liveins: $rax, $rbp, $rbx
1131 $ebp = LEA64_32r killed $rbx, 4, killed $rbx, 5, $noreg
1138 exposesReturnsTwice: false
1140 regBankSelected: false
1142 tracksRegLiveness: true
1147 isFrameAddressTaken: false
1148 isReturnAddressTaken: false
1150 hasPatchPoint: false
1157 hasOpaqueSPAdjustment: false
1159 hasMustTailInVarArgFunc: false
1164 ; CHECK-LABEL: name: pr43758
1165 ; CHECK: liveins: $rax, $rbp
1166 ; CHECK: DBG_VALUE 0, $noreg
1171 ; CHECK: $ebp = ADD32rr $ebp, $eax, implicit-def $eflags, implicit $rbp, implicit $rax
1182 $ebp = LEA64_32r killed $rbp, 1, killed $rax, 0, $noreg