1
- ; RUN: llc < %s -march=sbf -show-mc-encoding | FileCheck %s
1
+ ; RUN: llc < %s -march=sbf -show-mc-encoding | FileCheck --check-prefix=CHECK-v1 %s
2
+ ; RUN: llc < %s -march=sbf -mcpu=sbfv2 -show-mc-encoding | FileCheck --check-prefix=CHECK-v2 %s
2
3
3
4
define void @test () #0 {
4
5
entry:
5
- ; CHECK: test:
6
+ ; CHECK-LABEL : test:
6
7
7
- ; CHECK: mov64 r1, 123 # encoding: [0xb7,0x01,0x00,0x00,0x7b,0x00,0x00,0x00]
8
- ; CHECK: call f_i16
8
+ ; CHECK-v1: mov64 r1, 123 # encoding: [0xb7,0x01,0x00,0x00,0x7b,0x00,0x00,0x00]
9
+ ; CHECK-v2: mov64 r1, 123
10
+ ; CHECK-v1: call f_i16
9
11
call void @f_i16 (i16 123 )
10
12
11
- ; CHECK: mov64 r1, 12345678 # encoding: [0xb7,0x01,0x00,0x00,0x4e,0x61,0xbc,0x00]
12
- ; CHECK: call f_i32
13
+ ; CHECK-v1: mov64 r1, 12345678 # encoding: [0xb7,0x01,0x00,0x00,0x4e,0x61,0xbc,0x00]
14
+ ; CHECK-v2: mov64 r1, 12345678
15
+ ; CHECK-v1: call f_i32
13
16
call void @f_i32 (i32 12345678 )
14
17
15
- ; CHECK: lddw r1, 72623859790382856 # encoding: [0x18,0x01,0x00,0x00,0x08,0x07,0x06,0x05,0x00,0x00,0x00,0x00,0x04,0x03,0x02,0x01]
16
- ; CHECK: call f_i64
18
+ ; 72623859790382856 = 0x0102030405060708
19
+ ; 84281096 = 0x05060708
20
+ ; 16909060 = 0x01020304
21
+
22
+ ; CHECK-v2: mov32 r1, 84281096 # encoding: [0xb4,0x01,0x00,0x00,0x08,0x07,0x06,0x05]
23
+ ; CHECK-v2: hor64 r1, 16909060 # encoding: [0xf7,0x01,0x00,0x00,0x04,0x03,0x02,0x01]
24
+
25
+ ; CHECK-v1: lddw r1, 72623859790382856 # encoding: [0x18,0x01,0x00,0x00,0x08,0x07,0x06,0x05,0x00,0x00,0x00,0x00,0x04,0x03,0x02,0x01]
26
+ ; CHECK-v1: call f_i64
17
27
call void @f_i64 (i64 72623859790382856 )
18
28
19
- ; CHECK: mov64 r1, 1234
20
- ; CHECK: mov64 r2, 5678
21
- ; CHECK: call f_i32_i32
29
+ ; CHECK-v1 : mov64 r1, 1234
30
+ ; CHECK-v1 : mov64 r2, 5678
31
+ ; CHECK-v1 : call f_i32_i32
22
32
call void @f_i32_i32 (i32 1234 , i32 5678 )
23
33
24
- ; CHECK: mov64 r1, 2
25
- ; CHECK: mov64 r2, 3
26
- ; CHECK: mov64 r3, 4
27
- ; CHECK: call f_i16_i32_i16
34
+ ; CHECK-v1 : mov64 r1, 2
35
+ ; CHECK-v1 : mov64 r2, 3
36
+ ; CHECK-v1 : mov64 r3, 4
37
+ ; CHECK-v1 : call f_i16_i32_i16
28
38
call void @f_i16_i32_i16 (i16 2 , i32 3 , i16 4 )
29
39
30
- ; CHECK: mov64 r1, 5
31
- ; CHECK: lddw r2, 7262385979038285
32
- ; CHECK: mov64 r3, 6
33
- ; CHECK: call f_i16_i64_i16
40
+ ; 7262385979038285 = 0x0019CD1A00809A4D
41
+ ; 8428109 = 0x00809A4D
42
+ ; 1690906 = 0x0019CD1A
43
+ ; CHECK-v2: mov32 r2, 8428109
44
+ ; CHECK-v2: hor64 r2, 1690906
45
+
46
+ ; CHECK-v1: mov64 r1, 5
47
+ ; CHECK-v1: lddw r2, 7262385979038285
48
+ ; CHECK-v1: mov64 r3, 6
49
+ ; CHECK-v1: call f_i16_i64_i16
34
50
call void @f_i16_i64_i16 (i16 5 , i64 7262385979038285 , i16 6 )
35
51
36
52
ret void
@@ -41,53 +57,53 @@ entry:
41
57
@g_i64 = common global i64 0 , align 4
42
58
43
59
define void @f_i16 (i16 %a ) #0 {
44
- ; CHECK: f_i16:
45
- ; CHECK: stxh [r2 + 0], r1 # encoding: [0x6b,0x12,0x00,0x00,0x00,0x00,0x00,0x00]
60
+ ; CHECK-v1 : f_i16:
61
+ ; CHECK-v1 : stxh [r2 + 0], r1 # encoding: [0x6b,0x12,0x00,0x00,0x00,0x00,0x00,0x00]
46
62
store volatile i16 %a , i16* @g_i16 , align 2
47
63
ret void
48
64
}
49
65
50
66
define void @f_i32 (i32 %a ) #0 {
51
- ; CHECK: f_i32:
52
- ; CHECK: stxw [r2 + 0], r1 # encoding: [0x63,0x12,0x00,0x00,0x00,0x00,0x00,0x00]
67
+ ; CHECK-v1 : f_i32:
68
+ ; CHECK-v1 : stxw [r2 + 0], r1 # encoding: [0x63,0x12,0x00,0x00,0x00,0x00,0x00,0x00]
53
69
store volatile i32 %a , i32* @g_i32 , align 2
54
70
ret void
55
71
}
56
72
57
73
define void @f_i64 (i64 %a ) #0 {
58
- ; CHECK: f_i64:
59
- ; CHECK: stxdw [r2 + 0], r1 # encoding: [0x7b,0x12,0x00,0x00,0x00,0x00,0x00,0x00]
74
+ ; CHECK-v1 : f_i64:
75
+ ; CHECK-v1 : stxdw [r2 + 0], r1 # encoding: [0x7b,0x12,0x00,0x00,0x00,0x00,0x00,0x00]
60
76
store volatile i64 %a , i64* @g_i64 , align 2
61
77
ret void
62
78
}
63
79
64
80
define void @f_i32_i32 (i32 %a , i32 %b ) #0 {
65
- ; CHECK: f_i32_i32:
66
- ; CHECK: stxw [r3 + 0], r1
81
+ ; CHECK-v1 : f_i32_i32:
82
+ ; CHECK-v1 : stxw [r3 + 0], r1
67
83
store volatile i32 %a , i32* @g_i32 , align 4
68
- ; CHECK: stxw [r3 + 0], r2
84
+ ; CHECK-v1 : stxw [r3 + 0], r2
69
85
store volatile i32 %b , i32* @g_i32 , align 4
70
86
ret void
71
87
}
72
88
73
89
define void @f_i16_i32_i16 (i16 %a , i32 %b , i16 %c ) #0 {
74
- ; CHECK: f_i16_i32_i16:
75
- ; CHECK: stxh [r4 + 0], r1
90
+ ; CHECK-v1 : f_i16_i32_i16:
91
+ ; CHECK-v1 : stxh [r4 + 0], r1
76
92
store volatile i16 %a , i16* @g_i16 , align 2
77
- ; CHECK: stxw [r1 + 0], r2
93
+ ; CHECK-v1 : stxw [r1 + 0], r2
78
94
store volatile i32 %b , i32* @g_i32 , align 4
79
- ; CHECK: stxh [r4 + 0], r3
95
+ ; CHECK-v1 : stxh [r4 + 0], r3
80
96
store volatile i16 %c , i16* @g_i16 , align 2
81
97
ret void
82
98
}
83
99
84
100
define void @f_i16_i64_i16 (i16 %a , i64 %b , i16 %c ) #0 {
85
- ; CHECK: f_i16_i64_i16:
86
- ; CHECK: stxh [r4 + 0], r1
101
+ ; CHECK-v1 : f_i16_i64_i16:
102
+ ; CHECK-v1 : stxh [r4 + 0], r1
87
103
store volatile i16 %a , i16* @g_i16 , align 2
88
- ; CHECK: stxdw [r1 + 0], r2 # encoding: [0x7b,0x21,0x00,0x00,0x00,0x00,0x00,0x00]
104
+ ; CHECK-v1 : stxdw [r1 + 0], r2 # encoding: [0x7b,0x21,0x00,0x00,0x00,0x00,0x00,0x00]
89
105
store volatile i64 %b , i64* @g_i64 , align 8
90
- ; CHECK: stxh [r4 + 0], r3
106
+ ; CHECK-v1 : stxh [r4 + 0], r3
91
107
store volatile i16 %c , i16* @g_i16 , align 2
92
108
ret void
93
109
}
0 commit comments