Skip to content

Commit 9ca0e14

Browse files
committed
Older iOS / watchOS targets do not default to having armv8.2 FP16 enabled, so FileCheck was failing when building for those because we didn't have the "right" assembly pattern. Stop testing Float16 compare codegen for now. I'll restore it with an IR test instead of assembly.
1 parent 68524a8 commit 9ca0e14

File tree

1 file changed

+2
-56
lines changed

1 file changed

+2
-56
lines changed

test/stdlib/SIMDFloatComparisons.swift.gyb

Lines changed: 2 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -16,141 +16,87 @@
1616

1717
import Swift
1818

19-
%for bits in [16,32,64]:
20-
% scalar = {16:'Float16',32:'Float',64:'Double'}[bits]
19+
%for bits in [32,64]:
20+
% scalar = {32:'Float',64:'Double'}[bits]
2121
% for totalBits in [64,128]:
2222
% n = totalBits // bits
2323
% if n != 1:
2424
% neonSuffix = str(n) + {8:'b',16:'h',32:'s',64:'d'}[bits]
25-
% if bits == 16:
26-
#if arch(arm64)
27-
@available(macOS 11.0, iOS 14.0, tvOS 14.0, watchOS 7.0, *)
28-
% end
2925
func compare_eq${n}x${bits}(
3026
_ a: SIMD${n}<${scalar}>, _ b: SIMD${n}<${scalar}>
3127
) -> SIMDMask<SIMD${n}<Int${bits}>> {
3228
a .== b
3329
}
34-
% if bits == 16:
35-
#endif
36-
// CHECK-arm64: compare_eq${n}x${bits}{{[[:alnum:]_]+}}:
37-
% else:
3830
// CHECK: compare_eq${n}x${bits}{{[[:alnum:]_]+}}:
3931
// CHECK-x86_64: cmpeqp${'s' if bits == 32 else 'd'}
4032
// CHECK-x86_64: ret
41-
% end
4233
// CHECKO-arm64-NEXT: fcmeq.${neonSuffix} v0, v0, v1
4334
// CHECKO-arm64-NEXT: ret
4435
// CHECKOnone-arm64: fcmeq.${neonSuffix}
4536
// CHECKOnone-arm64: ret
4637

47-
% if bits == 16:
48-
#if arch(arm64)
49-
@available(macOS 11.0, iOS 14.0, tvOS 14.0, watchOS 7.0, *)
50-
% end
5138
func compare_ne${n}x${bits}(
5239
_ a: SIMD${n}<${scalar}>, _ b: SIMD${n}<${scalar}>
5340
) -> SIMDMask<SIMD${n}<Int${bits}>> {
5441
a .!= b
5542
}
56-
% if bits == 16:
57-
#endif
58-
// CHECK-arm64: compare_ne${n}x${bits}{{[[:alnum:]_]+}}:
59-
% else:
6043
// CHECK: compare_ne${n}x${bits}{{[[:alnum:]_]+}}:
6144
// CHECK-x86_64: cmpneqp${'s' if bits == 32 else 'd'}
6245
// CHECK-x86_64: ret
63-
% end
6446
// CHECKO-arm64-NEXT: fcmeq.${neonSuffix} [[TMP:v[0-9]+]], v0, v1
6547
// CHECKO-arm64-NEXT: mvn.${totalBits//8}b v0, [[TMP]]
6648
// CHECKO-arm64-NEXT: ret
6749
// CHECKOnone-arm64: fcmeq.${neonSuffix}
6850
// CHECKOnone-arm64: mvn.${totalBits//8}b
6951
// CHECKOnone-arm64: ret
7052

71-
% if bits == 16:
72-
#if arch(arm64)
73-
@available(macOS 11.0, iOS 14.0, tvOS 14.0, watchOS 7.0, *)
74-
% end
7553
func compare_lt${n}x${bits}(
7654
_ a: SIMD${n}<${scalar}>, _ b: SIMD${n}<${scalar}>
7755
) -> SIMDMask<SIMD${n}<Int${bits}>> {
7856
a .< b
7957
}
80-
% if bits == 16:
81-
#endif
82-
// CHECK-arm64: compare_lt${n}x${bits}{{[[:alnum:]_]+}}:
83-
% else:
8458
// CHECK: compare_lt${n}x${bits}{{[[:alnum:]_]+}}:
8559
// CHECK-x86_64: cmpltp${'s' if bits == 32 else 'd'}
8660
// CHECK-x86_64: ret
87-
% end
8861
// CHECKO-arm64-NEXT: fcmgt.${neonSuffix} v0, v1, v0
8962
// CHECKO-arm64-NEXT: ret
9063
// CHECKOnone-arm64: fcmgt.${neonSuffix}
9164
// CHECKOnone-arm64: ret
9265

93-
% if bits == 16:
94-
#if arch(arm64)
95-
@available(macOS 11.0, iOS 14.0, tvOS 14.0, watchOS 7.0, *)
96-
% end
9766
func compare_le${n}x${bits}(
9867
_ a: SIMD${n}<${scalar}>, _ b: SIMD${n}<${scalar}>
9968
) -> SIMDMask<SIMD${n}<Int${bits}>> {
10069
a .<= b
10170
}
102-
% if bits == 16:
103-
#endif
104-
// CHECK-arm64: compare_le${n}x${bits}{{[[:alnum:]_]+}}:
105-
% else:
10671
// CHECK: compare_le${n}x${bits}{{[[:alnum:]_]+}}:
10772
// CHECK-x86_64: cmplep${'s' if bits == 32 else 'd'}
10873
// CHECK-x86_64: ret
109-
% end
11074
// CHECKO-arm64-NEXT: fcmge.${neonSuffix} v0, v1, v0
11175
// CHECKO-arm64-NEXT: ret
11276
// CHECKOnone-arm64: fcmge.${neonSuffix}
11377
// CHECKOnone-arm64: ret
11478

115-
% if bits == 16:
116-
#if arch(arm64)
117-
@available(macOS 11.0, iOS 14.0, tvOS 14.0, watchOS 7.0, *)
118-
% end
11979
func compare_ge${n}x${bits}(
12080
_ a: SIMD${n}<${scalar}>, _ b: SIMD${n}<${scalar}>
12181
) -> SIMDMask<SIMD${n}<Int${bits}>> {
12282
a .>= b
12383
}
124-
% if bits == 16:
125-
#endif
126-
// CHECK-arm64: compare_ge${n}x${bits}{{[[:alnum:]_]+}}:
127-
% else:
12884
// CHECK: compare_ge${n}x${bits}{{[[:alnum:]_]+}}:
12985
// CHECK-x86_64: cmplep${'s' if bits == 32 else 'd'}
13086
// CHECK-x86_64: ret
131-
% end
13287
// CHECKO-arm64-NEXT: fcmge.${neonSuffix} v0, v0, v1
13388
// CHECKO-arm64-NEXT: ret
13489
// CHECKOnone-arm64: fcmge.${neonSuffix}
13590
// CHECKOnone-arm64: ret
13691

137-
% if bits == 16:
138-
#if arch(arm64)
139-
@available(macOS 11.0, iOS 14.0, tvOS 14.0, watchOS 7.0, *)
140-
% end
14192
func compare_gt${n}x${bits}(
14293
_ a: SIMD${n}<${scalar}>, _ b: SIMD${n}<${scalar}>
14394
) -> SIMDMask<SIMD${n}<Int${bits}>> {
14495
a .> b
14596
}
146-
% if bits == 16:
147-
#endif
148-
// CHECK-arm64: compare_gt${n}x${bits}{{[[:alnum:]_]+}}:
149-
% else:
15097
// CHECK: compare_gt${n}x${bits}{{[[:alnum:]_]+}}:
15198
// CHECK-x86_64: cmpltp${'s' if bits == 32 else 'd'}
15299
// CHECK-x86_64: ret
153-
% end
154100
// CHECKO-arm64-NEXT: fcmgt.${neonSuffix} v0, v0, v1
155101
// CHECKO-arm64-NEXT: ret
156102
// CHECKOnone-arm64: fcmgt.${neonSuffix}

0 commit comments

Comments
 (0)