@@ -35,7 +35,7 @@ inline int __attribute__((target_version("sve+sve-bf16"))) fmv_inline(void) { re
35
35
inline int __attribute__((target_version ("sve2-aes+sve2-sha3" ))) fmv_inline (void ) { return 5 ; }
36
36
inline int __attribute__((target_version ("sve2+sve2-pmull128+sve2-bitperm" ))) fmv_inline (void ) { return 9 ; }
37
37
inline int __attribute__((target_version ("sve2-sm4+memtag2" ))) fmv_inline (void ) { return 10 ; }
38
- inline int __attribute__((target_version ("memtag3+rcpc3" ))) fmv_inline (void ) { return 11 ; }
38
+ inline int __attribute__((target_version ("memtag3+rcpc3+mops " ))) fmv_inline (void ) { return 11 ; }
39
39
inline int __attribute__((target_version ("default" ))) fmv_inline (void ) { return 3 ; }
40
40
41
41
__attribute__((target_version ("ls64" ))) int fmv_e (void );
@@ -272,36 +272,36 @@ int hoo(void) {
272
272
// CHECK-NEXT: ret ptr @fmv_inline._Mfp16Mfp16MfcmaMsme
273
273
// CHECK: resolver_else:
274
274
// CHECK-NEXT: [[TMP4:%.*]] = load i64, ptr @__aarch64_cpu_features, align 8
275
- // CHECK-NEXT: [[TMP5:%.*]] = and i64 [[TMP4]], 893353197568
276
- // CHECK-NEXT: [[TMP6:%.*]] = icmp eq i64 [[TMP5]], 893353197568
275
+ // CHECK-NEXT: [[TMP5:%.*]] = and i64 [[TMP4]], 864726312827224064
276
+ // CHECK-NEXT: [[TMP6:%.*]] = icmp eq i64 [[TMP5]], 864726312827224064
277
277
// CHECK-NEXT: [[TMP7:%.*]] = and i1 true, [[TMP6]]
278
278
// CHECK-NEXT: br i1 [[TMP7]], label [[RESOLVER_RETURN1:%.*]], label [[RESOLVER_ELSE2:%.*]]
279
279
// CHECK: resolver_return1:
280
- // CHECK-NEXT: ret ptr @fmv_inline._Msve2Msve2-pmull128Msve2-bitperm
280
+ // CHECK-NEXT: ret ptr @fmv_inline._Mrcpc3Mmemtag3Mmops
281
281
// CHECK: resolver_else2:
282
282
// CHECK-NEXT: [[TMP8:%.*]] = load i64, ptr @__aarch64_cpu_features, align 8
283
- // CHECK-NEXT: [[TMP9:%.*]] = and i64 [[TMP8]], 34359773184
284
- // CHECK-NEXT: [[TMP10:%.*]] = icmp eq i64 [[TMP9]], 34359773184
283
+ // CHECK-NEXT: [[TMP9:%.*]] = and i64 [[TMP8]], 893353197568
284
+ // CHECK-NEXT: [[TMP10:%.*]] = icmp eq i64 [[TMP9]], 893353197568
285
285
// CHECK-NEXT: [[TMP11:%.*]] = and i1 true, [[TMP10]]
286
286
// CHECK-NEXT: br i1 [[TMP11]], label [[RESOLVER_RETURN3:%.*]], label [[RESOLVER_ELSE4:%.*]]
287
287
// CHECK: resolver_return3:
288
- // CHECK-NEXT: ret ptr @fmv_inline._Msha1MpmullMf64mm
288
+ // CHECK-NEXT: ret ptr @fmv_inline._Msve2Msve2-pmull128Msve2-bitperm
289
289
// CHECK: resolver_else4:
290
290
// CHECK-NEXT: [[TMP12:%.*]] = load i64, ptr @__aarch64_cpu_features, align 8
291
- // CHECK-NEXT: [[TMP13:%.*]] = and i64 [[TMP12]], 17246986240
292
- // CHECK-NEXT: [[TMP14:%.*]] = icmp eq i64 [[TMP13]], 17246986240
291
+ // CHECK-NEXT: [[TMP13:%.*]] = and i64 [[TMP12]], 34359773184
292
+ // CHECK-NEXT: [[TMP14:%.*]] = icmp eq i64 [[TMP13]], 34359773184
293
293
// CHECK-NEXT: [[TMP15:%.*]] = and i1 true, [[TMP14]]
294
294
// CHECK-NEXT: br i1 [[TMP15]], label [[RESOLVER_RETURN5:%.*]], label [[RESOLVER_ELSE6:%.*]]
295
295
// CHECK: resolver_return5:
296
- // CHECK-NEXT: ret ptr @fmv_inline._Msha3Mi8mmMf32mm
296
+ // CHECK-NEXT: ret ptr @fmv_inline._Msha1MpmullMf64mm
297
297
// CHECK: resolver_else6:
298
298
// CHECK-NEXT: [[TMP16:%.*]] = load i64, ptr @__aarch64_cpu_features, align 8
299
- // CHECK-NEXT: [[TMP17:%.*]] = and i64 [[TMP16]], 288265560523800576
300
- // CHECK-NEXT: [[TMP18:%.*]] = icmp eq i64 [[TMP17]], 288265560523800576
299
+ // CHECK-NEXT: [[TMP17:%.*]] = and i64 [[TMP16]], 17246986240
300
+ // CHECK-NEXT: [[TMP18:%.*]] = icmp eq i64 [[TMP17]], 17246986240
301
301
// CHECK-NEXT: [[TMP19:%.*]] = and i1 true, [[TMP18]]
302
302
// CHECK-NEXT: br i1 [[TMP19]], label [[RESOLVER_RETURN7:%.*]], label [[RESOLVER_ELSE8:%.*]]
303
303
// CHECK: resolver_return7:
304
- // CHECK-NEXT: ret ptr @fmv_inline._Mrcpc3Mmemtag3
304
+ // CHECK-NEXT: ret ptr @fmv_inline._Msha3Mi8mmMf32mm
305
305
// CHECK: resolver_else8:
306
306
// CHECK-NEXT: [[TMP20:%.*]] = load i64, ptr @__aarch64_cpu_features, align 8
307
307
// CHECK-NEXT: [[TMP21:%.*]] = and i64 [[TMP20]], 19791209299968
@@ -609,7 +609,7 @@ int hoo(void) {
609
609
//
610
610
//
611
611
// CHECK: Function Attrs: noinline nounwind optnone
612
- // CHECK-LABEL: define {{[^@]+}}@fmv_inline._Mrcpc3Mmemtag3
612
+ // CHECK-LABEL: define {{[^@]+}}@fmv_inline._Mrcpc3Mmemtag3Mmops
613
613
// CHECK-SAME: () #[[ATTR23:[0-9]+]] {
614
614
// CHECK-NEXT: entry:
615
615
// CHECK-NEXT: ret i32 11
@@ -768,7 +768,7 @@ int hoo(void) {
768
768
// CHECK: attributes #[[ATTR20]] = { noinline nounwind optnone "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+fp-armv8,+fullfp16,+ls64,+neon,+sve,+sve2,+sve2-aes,+sve2-sha3" }
769
769
// CHECK: attributes #[[ATTR21]] = { noinline nounwind optnone "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+fp-armv8,+fullfp16,+ls64,+neon,+sve,+sve2,+sve2-aes,+sve2-bitperm" }
770
770
// CHECK: attributes #[[ATTR22]] = { noinline nounwind optnone "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+fp-armv8,+fullfp16,+ls64,+mte,+neon,+sve,+sve2,+sve2-sm4" }
771
- // CHECK: attributes #[[ATTR23]] = { noinline nounwind optnone "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+fullfp16,+ls64,+mte,+rcpc,+rcpc3" }
771
+ // CHECK: attributes #[[ATTR23]] = { noinline nounwind optnone "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+fullfp16,+ls64,+mops,+ mte,+rcpc,+rcpc3" }
772
772
// CHECK: attributes #[[ATTR24]] = { noinline nounwind optnone "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+fullfp16,+ls64,+sb" }
773
773
//.
774
774
// CHECK-NOFMV: attributes #[[ATTR0]] = { noinline nounwind optnone "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="-fmv" }
0 commit comments