|
1 |
| -// RUN: %target-swift-frontend -O -emit-ir %s | %FileCheck %s |
2 |
| -// RUN: %target-swift-frontend -Osize -emit-ir %s | %FileCheck %s |
| 1 | +// RUN: %target-swift-frontend -O -emit-ir %s | %FileCheck --check-prefix=CHECK-%target-cpu %s |
| 2 | +// RUN: %target-swift-frontend -Osize -emit-ir %s | %FileCheck --check-prefix=CHECK-%target-cpu %s |
3 | 3 |
|
4 | 4 | // RUN: %empty-directory(%t)
|
5 | 5 | // RUN: %target-build-swift -O -module-name=test %s -o %t/a.out
|
|
12 | 12 | // optimal code for static String variables.
|
13 | 13 |
|
14 | 14 | public struct S {
|
15 |
| - // CHECK: {{^@"}}[[SMALL:.*smallstr.*pZ]]" ={{.*}} global {{.*}} inttoptr |
| 15 | + // CHECK-x86_64: {{^@"}}[[SMALL:.*smallstr.*pZ]]" ={{.*}} global {{.*}} inttoptr |
| 16 | + // CHECK-arm64: {{^@"}}[[SMALL:.*smallstr.*pZ]]" ={{.*}} global {{.*}} inttoptr |
16 | 17 | public static let smallstr = "abc123a"
|
17 |
| - // CHECK: {{^@"}}[[LARGE:.*largestr.*pZ]]" ={{.*}} global {{.*}} inttoptr {{.*}} add |
| 18 | + // CHECK-arm64: {{^@"}}[[LARGE:.*largestr.*pZ]]" ={{.*}} global {{.*}} inttoptr {{.*}} add |
18 | 19 | public static let largestr = "abc123asd3sdj3basfasdf"
|
19 |
| - // CHECK: {{^@"}}[[UNICODE:.*unicodestr.*pZ]]" ={{.*}} global {{.*}} inttoptr {{.*}} add |
| 20 | + // CHECK-arm64: {{^@"}}[[UNICODE:.*unicodestr.*pZ]]" ={{.*}} global {{.*}} inttoptr {{.*}} add |
20 | 21 | public static let unicodestr = "❄️gastroperiodyni"
|
21 | 22 | }
|
22 | 23 |
|
23 | 24 | // unsafeMutableAddressor for S.smallstr
|
24 |
| -// CHECK: define {{.*smallstr.*}}u" |
25 |
| -// CHECK-NEXT: entry: |
26 |
| -// CHECK-NEXT: ret {{.*}} @"[[SMALL]]" |
27 |
| -// CHECK-NEXT: } |
| 25 | +// CHECK-arm64: define {{.*smallstr.*}}u" |
| 26 | +// CHECK-arm64-NEXT: entry: |
| 27 | +// CHECK-arm64-NEXT: ret {{.*}} @"[[SMALL]]" |
| 28 | +// CHECK-arm64-NEXT: } |
| 29 | + |
| 30 | +// CHECK-x86_64: define {{.*smallstr.*}}u" |
| 31 | +// CHECK-x86_64-NEXT: entry: |
| 32 | +// CHECK-x86_64-NEXT: ret {{.*}} @"[[SMALL]]" |
| 33 | +// CHECK-x86_64-NEXT: } |
28 | 34 |
|
29 | 35 | // getter for S.smallstr
|
30 |
| -// CHECK: define {{.*smallstr.*}}gZ" |
31 |
| -// CHECK-NEXT: entry: |
32 |
| -// CHECK-NEXT: ret {{.*}} |
33 |
| -// CHECK-NEXT: } |
| 36 | +// CHECK-arm64: define {{.*smallstr.*}}gZ" |
| 37 | +// CHECK-arm64-NEXT: entry: |
| 38 | +// CHECK-arm64-NEXT: ret {{.*}} |
| 39 | +// CHECK-arm64-NEXT: } |
| 40 | + |
| 41 | +// CHECK-x86_64: define {{.*smallstr.*}}gZ" |
| 42 | +// CHECK-x86_64-NEXT: entry: |
| 43 | +// CHECK-x86_64-NEXT: ret {{.*}} |
| 44 | +// CHECK-x86_64-NEXT: } |
34 | 45 |
|
35 | 46 | // unsafeMutableAddressor for S.largestr
|
36 |
| -// CHECK: define {{.*largestr.*}}u" |
37 |
| -// CHECK-NEXT: entry: |
38 |
| -// CHECK-NEXT: ret {{.*}} @"[[LARGE]]" |
39 |
| -// CHECK-NEXT: } |
| 47 | +// CHECK-arm64: define {{.*largestr.*}}u" |
| 48 | +// CHECK-arm64-NEXT: entry: |
| 49 | +// CHECK-arm64-NEXT: ret {{.*}} @"[[LARGE]]" |
| 50 | +// CHECK-arm64-NEXT: } |
40 | 51 |
|
41 | 52 | // getter for S.largestr
|
42 |
| -// CHECK: define {{.*largestr.*}}gZ" |
43 |
| -// CHECK-NEXT: entry: |
44 |
| -// CHECK-NEXT: ret {{.*}} |
45 |
| -// CHECK-NEXT: } |
| 53 | +// CHECK-arm64: define {{.*largestr.*}}gZ" |
| 54 | +// CHECK-arm64-NEXT: entry: |
| 55 | +// CHECK-arm64-NEXT: ret {{.*}} |
| 56 | +// CHECK-arm64-NEXT: } |
46 | 57 |
|
47 | 58 | // unsafeMutableAddressor for S.unicodestr
|
48 |
| -// CHECK: define {{.*unicodestr.*}}u" |
49 |
| -// CHECK-NEXT: entry: |
50 |
| -// CHECK-NEXT: ret {{.*}} @"[[UNICODE]]" |
51 |
| -// CHECK-NEXT: } |
| 59 | +// CHECK-arm64: define {{.*unicodestr.*}}u" |
| 60 | +// CHECK-arm64-NEXT: entry: |
| 61 | +// CHECK-arm64-NEXT: ret {{.*}} @"[[UNICODE]]" |
| 62 | +// CHECK-arm64-NEXT: } |
52 | 63 |
|
53 | 64 | // getter for S.unicodestr
|
54 |
| -// CHECK: define {{.*unicodestr.*}}gZ" |
55 |
| -// CHECK-NEXT: entry: |
56 |
| -// CHECK-NEXT: ret {{.*}} |
57 |
| -// CHECK-NEXT: } |
58 |
| - |
59 |
| -// CHECK-LABEL: define {{.*}}get_smallstr |
60 |
| -// CHECK: entry: |
61 |
| -// CHECK-NEXT: ret {{.*}} |
62 |
| -// CHECK-NEXT: } |
| 65 | +// CHECK-arm64: define {{.*unicodestr.*}}gZ" |
| 66 | +// CHECK-arm64-NEXT: entry: |
| 67 | +// CHECK-arm64-NEXT: ret {{.*}} |
| 68 | +// CHECK-arm64-NEXT: } |
| 69 | + |
| 70 | +// CHECK-arm64-LABEL: define {{.*}}get_smallstr |
| 71 | +// CHECK-arm64: entry: |
| 72 | +// CHECK-arm64-NEXT: ret {{.*}} |
| 73 | +// CHECK-arm64-NEXT: } |
| 74 | + |
| 75 | +// CHECK-x86_64-LABEL: define {{.*}}get_smallstr |
| 76 | +// CHECK-x86_64: entry: |
| 77 | +// CHECK-x86_64-NEXT: ret {{.*}} |
| 78 | +// CHECK-x86_64-NEXT: } |
63 | 79 | @inline(never)
|
64 | 80 | public func get_smallstr() -> String {
|
65 | 81 | return S.smallstr
|
66 | 82 | }
|
67 | 83 |
|
68 |
| -// CHECK-LABEL: define {{.*}}get_largestr |
69 |
| -// CHECK: entry: |
70 |
| -// CHECK-NEXT: ret {{.*}} |
71 |
| -// CHECK-NEXT: } |
| 84 | +// CHECK-arm64-LABEL: define {{.*}}get_largestr |
| 85 | +// CHECK-arm64: entry: |
| 86 | +// CHECK-arm64-NEXT: ret {{.*}} |
| 87 | +// CHECK-arm64-NEXT: } |
72 | 88 | @inline(never)
|
73 | 89 | public func get_largestr() -> String {
|
74 | 90 | return S.largestr
|
75 | 91 | }
|
76 | 92 |
|
77 |
| -// CHECK-LABEL: define {{.*}}get_unicodestr |
78 |
| -// CHECK: entry: |
79 |
| -// CHECK-NEXT: ret {{.*}} |
80 |
| -// CHECK-NEXT: } |
| 93 | +// CHECK-arm64-LABEL: define {{.*}}get_unicodestr |
| 94 | +// CHECK-arm64: entry: |
| 95 | +// CHECK-arm64-NEXT: ret {{.*}} |
| 96 | +// CHECK-arm64-NEXT: } |
81 | 97 | @inline(never)
|
82 | 98 | public func get_unicodestr() -> String {
|
83 | 99 | return S.unicodestr
|
|
0 commit comments