[win/asan] GetInstructionSize: Fix `83 E4 XX` to return 3. (#119644)
[llvm-project.git] / llvm / test / CodeGen / ARM / machine-outliner-no-lr-save.mir
blob71a7d4d7a1c1218b614d8c9791aba2996acff1dc
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=arm-- -run-pass=machine-outliner -verify-machineinstrs \
3 # RUN: %s -o - | FileCheck %s
5 --- |
6   define void @outline_no_save_ok_arm() #0 { ret void }
7   define void @outline_no_save_ok_thumb() #1 { ret void }
9   declare void @foo()
11   attributes #0 = { minsize optsize }
12   attributes #1 = { minsize optsize "target-features"="+armv7-a,+thumb-mode" }
13 ...
14 ---
16 name:           outline_no_save_ok_arm
17 tracksRegLiveness: true
18 body:             |
19   ; CHECK-LABEL: name: outline_no_save_ok_arm
20   ; CHECK: bb.0:
21   ; CHECK:   BL @OUTLINED_FUNCTION_1
22   ; CHECK: bb.1:
23   ; CHECK:   BL @OUTLINED_FUNCTION_1
24   ; CHECK: bb.2:
25   ; CHECK:   BX_RET 14 /* CC::al */, $noreg
26   bb.0:
27     $r2 = MOVi 1, 14, $noreg, $noreg
28     $r2 = MOVi 1, 14, $noreg, $noreg
29     $r2 = MOVi 1, 14, $noreg, $noreg
30     $r2 = MOVi 1, 14, $noreg, $noreg
31     $r3 = LDRi12 $sp, 8, 14, $noreg
32   bb.1:
33     $r2 = MOVi 1, 14, $noreg, $noreg
34     $r2 = MOVi 1, 14, $noreg, $noreg
35     $r2 = MOVi 1, 14, $noreg, $noreg
36     $r2 = MOVi 1, 14, $noreg, $noreg
37     $r3 = LDRi12 $sp, 8, 14, $noreg
38   bb.2:
39     BX_RET 14, $noreg
40 ...
41 ---
43 name:           outline_no_save_ok_thumb
44 tracksRegLiveness: true
45 body:             |
46   ; CHECK-LABEL: name: outline_no_save_ok_thumb
47   ; CHECK: bb.0:
48   ; CHECK:   tBL 14 /* CC::al */, $noreg, @OUTLINED_FUNCTION_0
49   ; CHECK: bb.1:
50   ; CHECK:   tBL 14 /* CC::al */, $noreg, @OUTLINED_FUNCTION_0
51   ; CHECK: bb.2:
52   ; CHECK:   tBX_RET 14 /* CC::al */, $noreg
53   bb.0:
54     $r2 = t2MOVi 1, 14, $noreg, $noreg
55     $r2 = t2MOVi 1, 14, $noreg, $noreg
56     $r2 = t2MOVi 1, 14, $noreg, $noreg
57     $r2 = t2MOVi 1, 14, $noreg, $noreg
58     t2STRi12 $r2, $sp, 0, 14, $noreg
59   bb.1:
60     $r2 = t2MOVi 1, 14, $noreg, $noreg
61     $r2 = t2MOVi 1, 14, $noreg, $noreg
62     $r2 = t2MOVi 1, 14, $noreg, $noreg
63     $r2 = t2MOVi 1, 14, $noreg, $noreg
64     t2STRi12 $r2, $sp, 0, 14, $noreg
65   bb.2:
66     tBX_RET 14, $noreg
68   ; CHECK-LABEL: name: OUTLINED_FUNCTION_0
69   ; CHECK: bb.0:
70   ; CHECK:   $r2 = t2MOVi 1, 14 /* CC::al */, $noreg, $noreg
71   ; CHECK:   $r2 = t2MOVi 1, 14 /* CC::al */, $noreg, $noreg
72   ; CHECK:   $r2 = t2MOVi 1, 14 /* CC::al */, $noreg, $noreg
73   ; CHECK:   $r2 = t2MOVi 1, 14 /* CC::al */, $noreg, $noreg
74   ; CHECK:   t2STRi12 $r2, $sp, 0, 14 /* CC::al */, $noreg
75   ; CHECK:   tBX_RET 14 /* CC::al */, $noreg
77   ; CHECK-LABEL: name: OUTLINED_FUNCTION_1
78   ; CHECK: bb.0:
79   ; CHECK:   $r2 = MOVi 1, 14 /* CC::al */, $noreg, $noreg
80   ; CHECK:   $r2 = MOVi 1, 14 /* CC::al */, $noreg, $noreg
81   ; CHECK:   $r2 = MOVi 1, 14 /* CC::al */, $noreg, $noreg
82   ; CHECK:   $r2 = MOVi 1, 14 /* CC::al */, $noreg, $noreg
83   ; CHECK:   $r3 = LDRi12 $sp, 8, 14 /* CC::al */, $noreg
84   ; CHECK:   MOVPCLR 14 /* CC::al */, $noreg