@@ -35,7 +35,7 @@ inline int __attribute__((target_version("sve+sve-bf16"))) fmv_inline(void) { re
3535inline int __attribute__((target_version ("sve2-aes+sve2-sha3" ))) fmv_inline (void ) { return 5 ; }
3636inline int __attribute__((target_version ("sve2+sve2-pmull128+sve2-bitperm" ))) fmv_inline (void ) { return 9 ; }
3737inline 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 ; }
3939inline int __attribute__((target_version ("default" ))) fmv_inline (void ) { return 3 ; }
4040
4141__attribute__((target_version ("ls64" ))) int fmv_e (void );
@@ -272,36 +272,36 @@ int hoo(void) {
272272// CHECK-NEXT: ret ptr @fmv_inline._Mfp16Mfp16MfcmaMsme
273273// CHECK: resolver_else:
274274// 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
277277// CHECK-NEXT: [[TMP7:%.*]] = and i1 true, [[TMP6]]
278278// CHECK-NEXT: br i1 [[TMP7]], label [[RESOLVER_RETURN1:%.*]], label [[RESOLVER_ELSE2:%.*]]
279279// CHECK: resolver_return1:
280- // CHECK-NEXT: ret ptr @fmv_inline._Msve2Msve2-pmull128Msve2-bitperm
280+ // CHECK-NEXT: ret ptr @fmv_inline._Mrcpc3Mmemtag3Mmops
281281// CHECK: resolver_else2:
282282// 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
285285// CHECK-NEXT: [[TMP11:%.*]] = and i1 true, [[TMP10]]
286286// CHECK-NEXT: br i1 [[TMP11]], label [[RESOLVER_RETURN3:%.*]], label [[RESOLVER_ELSE4:%.*]]
287287// CHECK: resolver_return3:
288- // CHECK-NEXT: ret ptr @fmv_inline._Msha1MpmullMf64mm
288+ // CHECK-NEXT: ret ptr @fmv_inline._Msve2Msve2-pmull128Msve2-bitperm
289289// CHECK: resolver_else4:
290290// 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
293293// CHECK-NEXT: [[TMP15:%.*]] = and i1 true, [[TMP14]]
294294// CHECK-NEXT: br i1 [[TMP15]], label [[RESOLVER_RETURN5:%.*]], label [[RESOLVER_ELSE6:%.*]]
295295// CHECK: resolver_return5:
296- // CHECK-NEXT: ret ptr @fmv_inline._Msha3Mi8mmMf32mm
296+ // CHECK-NEXT: ret ptr @fmv_inline._Msha1MpmullMf64mm
297297// CHECK: resolver_else6:
298298// 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
301301// CHECK-NEXT: [[TMP19:%.*]] = and i1 true, [[TMP18]]
302302// CHECK-NEXT: br i1 [[TMP19]], label [[RESOLVER_RETURN7:%.*]], label [[RESOLVER_ELSE8:%.*]]
303303// CHECK: resolver_return7:
304- // CHECK-NEXT: ret ptr @fmv_inline._Mrcpc3Mmemtag3
304+ // CHECK-NEXT: ret ptr @fmv_inline._Msha3Mi8mmMf32mm
305305// CHECK: resolver_else8:
306306// CHECK-NEXT: [[TMP20:%.*]] = load i64, ptr @__aarch64_cpu_features, align 8
307307// CHECK-NEXT: [[TMP21:%.*]] = and i64 [[TMP20]], 19791209299968
@@ -609,7 +609,7 @@ int hoo(void) {
609609//
610610//
611611// CHECK: Function Attrs: noinline nounwind optnone
612- // CHECK-LABEL: define {{[^@]+}}@fmv_inline._Mrcpc3Mmemtag3
612+ // CHECK-LABEL: define {{[^@]+}}@fmv_inline._Mrcpc3Mmemtag3Mmops
613613// CHECK-SAME: () #[[ATTR23:[0-9]+]] {
614614// CHECK-NEXT: entry:
615615// CHECK-NEXT: ret i32 11
@@ -768,7 +768,7 @@ int hoo(void) {
768768// 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" }
769769// 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" }
770770// 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" }
772772// CHECK: attributes #[[ATTR24]] = { noinline nounwind optnone "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+fullfp16,+ls64,+sb" }
773773//.
774774// CHECK-NOFMV: attributes #[[ATTR0]] = { noinline nounwind optnone "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="-fmv" }
0 commit comments