1
- ; RUN: llc -mtriple=arm64-apple-ios -mcpu=cyclone < %s | FileCheck %s -check-prefix=CYCLONE --check-prefix=ALL
2
- ; RUN: llc -mtriple=aarch64-gnu-linux -mcpu=kryo < %s | FileCheck %s -check-prefix=KRYO --check-prefix=ALL
3
- ; RUN: llc -mtriple=aarch64-gnu-linux -mcpu=falkor < %s | FileCheck %s -check-prefix=FALKOR --check-prefix=ALL
1
+ ; RUN: llc -mtriple=arm64-apple-ios -mcpu=cyclone < %s | FileCheck %s -check-prefixes=ALL,CYCLONE
2
+ ; RUN: llc -mtriple=aarch64-gnu-linux -mcpu=exynos-m1 < %s | FileCheck %s -check-prefixes=ALL,OTHERS
3
+ ; RUN: llc -mtriple=aarch64-gnu-linux -mcpu=exynos-m3 < %s | FileCheck %s -check-prefixes=ALL,OTHERS
4
+ ; RUN: llc -mtriple=aarch64-gnu-linux -mcpu=kryo < %s | FileCheck %s -check-prefixes=ALL,OTHERS
5
+ ; RUN: llc -mtriple=aarch64-gnu-linux -mcpu=falkor < %s | FileCheck %s -check-prefixes=ALL,OTHERS
4
6
5
7
; rdar://11481771
6
8
; rdar://13713797
7
9
10
+ declare void @bar (half , float , double , <2 x double >)
11
+ declare void @bari (i32 , i32 )
12
+ declare void @barl (i64 , i64 )
13
+ declare void @barf (float , float )
14
+
8
15
define void @t1 () nounwind ssp {
9
16
entry:
10
17
; ALL-LABEL: t1:
11
18
; ALL-NOT: fmov
12
- ; CYCLONE: fmov d0, xzr
13
- ; CYCLONE: fmov d1, xzr
19
+ ; CYCLONE: fmov h0, wzr
20
+ ; CYCLONE: fmov s1, wzr
14
21
; CYCLONE: fmov d2, xzr
15
- ; CYCLONE: fmov d3, xzr
16
- ; KRYO: movi v0.2d, #0000000000000000
17
- ; KRYO: movi v1.2d, #0000000000000000
18
- ; KRYO: movi v2.2d, #0000000000000000
19
- ; KRYO: movi v3.2d, #0000000000000000
20
- ; FALKOR: movi v0.2d, #0000000000000000
21
- ; FALKOR: movi v1.2d, #0000000000000000
22
- ; FALKOR: movi v2.2d, #0000000000000000
23
- ; FALKOR: movi v3.2d, #0000000000000000
24
- tail call void @bar (double 0 .000000e+00 , double 0 .000000e+00 , double 0 .000000e+00 , double 0 .000000e+00 ) nounwind
22
+ ; CYCLONE: movi.16b v3, #0
23
+ ; OTHERS: movi v{{[0-3]+}}.2d, #0000000000000000
24
+ ; OTHERS: movi v{{[0-3]+}}.2d, #0000000000000000
25
+ ; OTHERS: movi v{{[0-3]+}}.2d, #0000000000000000
26
+ ; OTHERS: movi v{{[0-3]+}}.2d, #0000000000000000
27
+ tail call void @bar (half 0 .000000e+00 , float 0 .000000e+00 , double 0 .000000e+00 , <2 x double > <double 0 .000000e+00 , double 0 .000000e+00 >) nounwind
25
28
ret void
26
29
}
27
30
28
31
define void @t2 () nounwind ssp {
29
32
entry:
30
33
; ALL-LABEL: t2:
31
34
; ALL-NOT: mov w0, wzr
32
- ; ALL: mov w0 , #0
33
- ; ALL: mov w1 , #0
35
+ ; ALL: mov w{{[0-3]+}} , #0
36
+ ; ALL: mov w{{[0-3]+}} , #0
34
37
tail call void @bari (i32 0 , i32 0 ) nounwind
35
38
ret void
36
39
}
@@ -39,35 +42,28 @@ define void @t3() nounwind ssp {
39
42
entry:
40
43
; ALL-LABEL: t3:
41
44
; ALL-NOT: mov x0, xzr
42
- ; ALL: mov x0 , #0
43
- ; ALL: mov x1 , #0
45
+ ; ALL: mov x{{[0-3]+}} , #0
46
+ ; ALL: mov x{{[0-3]+}} , #0
44
47
tail call void @barl (i64 0 , i64 0 ) nounwind
45
48
ret void
46
49
}
47
50
48
51
define void @t4 () nounwind ssp {
49
52
; ALL-LABEL: t4:
50
53
; ALL-NOT: fmov
51
- ; CYCLONE: fmov s0, wzr
52
- ; CYCLONE: fmov s1, wzr
53
- ; KRYO: movi v0.2d, #0000000000000000
54
- ; KRYO: movi v1.2d, #0000000000000000
55
- ; FALKOR: movi v0.2d, #0000000000000000
56
- ; FALKOR: movi v1.2d, #0000000000000000
54
+ ; CYCLONE: fmov s{{[0-3]+}}, wzr
55
+ ; CYCLONE: fmov s{{[0-3]+}}, wzr
56
+ ; OTHERS: movi v{{[0-3]+}}.2d, #0000000000000000
57
+ ; OTHERS: movi v{{[0-3]+}}.2d, #0000000000000000
57
58
tail call void @barf (float 0 .000000e+00 , float 0 .000000e+00 ) nounwind
58
59
ret void
59
60
}
60
61
61
- declare void @bar (double , double , double , double )
62
- declare void @bari (i32 , i32 )
63
- declare void @barl (i64 , i64 )
64
- declare void @barf (float , float )
65
-
66
62
; We used to produce spills+reloads for a Q register with zero cycle zeroing
67
63
; enabled.
68
64
; ALL-LABEL: foo:
69
- ; ALL-NOT: str {{q [0-9]+}}
70
- ; ALL-NOT: ldr {{q [0-9]+}}
65
+ ; ALL-NOT: str q{{ [0-9]+}}
66
+ ; ALL-NOT: ldr q{{ [0-9]+}}
71
67
define double @foo (i32 %n ) {
72
68
entry:
73
69
br label %for.body
@@ -90,8 +86,7 @@ for.end:
90
86
define <2 x i64 > @t6 () {
91
87
; ALL-LABEL: t6:
92
88
; CYCLONE: movi.16b v0, #0
93
- ; KRYO: movi v0.2d, #0000000000000000
94
- ; FALKOR: movi v0.2d, #0000000000000000
89
+ ; OTHERS: movi v0.2d, #0000000000000000
95
90
ret <2 x i64 > zeroinitializer
96
91
}
97
92
0 commit comments