@@ -58,58 +58,57 @@ void v1msve() {}
58
58
// CHECK-LABEL: @plussve() #12
59
59
__attribute__((target ("+sve" )))
60
60
void plussve () {}
61
- // CHECK-LABEL: @plussveplussve2() #13
61
+ // CHECK-LABEL: @plussveplussve2() #12
62
62
__attribute__((target ("+sve+nosve2" )))
63
63
void plussveplussve2 () {}
64
- // CHECK-LABEL: @plussveminusnosve2() #13
64
+ // CHECK-LABEL: @plussveminusnosve2() #12
65
65
__attribute__((target ("sve,no-sve2" )))
66
66
void plussveminusnosve2 () {}
67
- // CHECK-LABEL: @plusfp16() #14
67
+ // CHECK-LABEL: @plusfp16() #13
68
68
__attribute__((target ("+fp16" )))
69
69
void plusfp16 () {}
70
70
71
- // CHECK-LABEL: @all() #15
71
+ // CHECK-LABEL: @all() #14
72
72
__attribute__((target ("cpu=neoverse-n1,tune=cortex-a710,arch=armv8.6-a+sve2" )))
73
73
void all () {}
74
- // CHECK-LABEL: @allplusbranchprotection() #16
74
+ // CHECK-LABEL: @allplusbranchprotection() #15
75
75
__attribute__((target ("cpu=neoverse-n1,tune=cortex-a710,arch=armv8.6-a+sve2,branch-protection=standard" )))
76
76
void allplusbranchprotection () {}
77
77
78
78
// These tests check that the user facing and internal llvm name are both accepted.
79
- // CHECK-LABEL: @plusnoneon() #17
79
+ // CHECK-LABEL: @plusnoneon() #16
80
80
__attribute__((target ("+noneon" )))
81
81
void plusnoneon () {}
82
- // CHECK-LABEL: @plusnosimd() #17
82
+ // CHECK-LABEL: @plusnosimd() #16
83
83
__attribute__((target ("+nosimd" )))
84
84
void plusnosimd () {}
85
- // CHECK-LABEL: @noneon() #17
85
+ // CHECK-LABEL: @noneon() #16
86
86
__attribute__((target ("no-neon" )))
87
87
void noneon () {}
88
- // CHECK-LABEL: @nosimd() #17
88
+ // CHECK-LABEL: @nosimd() #16
89
89
__attribute__((target ("no-simd" )))
90
90
void nosimd () {}
91
91
92
92
// This isn't part of the standard interface, but test that -arch features should not apply anything else.
93
- // CHECK-LABEL: @minusarch() #18
93
+ // CHECK-LABEL: @minusarch() #17
94
94
__attribute__((target ("no-v9.3a" )))
95
95
void minusarch () {}
96
96
97
97
// CHECK: attributes #0 = { {{.*}} "target-features"="+crc,+fp-armv8,+lse,+neon,+ras,+rdm,+v8.1a,+v8.2a,+v8a" }
98
98
// CHECK: attributes #1 = { {{.*}} "target-features"="+crc,+fp-armv8,+fullfp16,+lse,+neon,+ras,+rdm,+sve,+v8.1a,+v8.2a,+v8a" }
99
99
// CHECK: attributes #2 = { {{.*}} "target-features"="+crc,+fp-armv8,+fullfp16,+lse,+neon,+ras,+rdm,+sve,+sve2,+v8.1a,+v8.2a,+v8a" }
100
- // CHECK: attributes #3 = { {{.*}} "target-features"="+bf16,+complxnum,+crc,+dotprod,+fp-armv8,+fullfp16,+i8mm,+jsconv,+lse,+neon,+pauth,+ras,+rcpc,+rdm,+sve,+sve2,+v8.1a,+v8.2a,+v8.3a,+v8.4a,+v8.5a,+v8.6a,+v8a" }
101
- // CHECK: attributes #4 = { {{.*}} "target-cpu"="cortex-a710" "target-features"="+bf16,+complxnum,+crc,+dotprod,+flagm,+fp-armv8,+fp16fml,+fullfp16,+i8mm,+jsconv,+lse,+mte,+neon,+pauth,+ras,+rcpc,+rdm,+sb,+sve,+sve2,+sve2-bitperm" }
100
+ // CHECK: attributes #3 = { {{.*}} "target-features"="+bf16,+complxnum,+crc,+dotprod,+fp-armv8,+fp16fml,+ fullfp16,+i8mm,+jsconv,+lse,+neon,+pauth,+ras,+rcpc,+rdm,+sve,+sve2,+v8.1a,+v8.2a,+v8.3a,+v8.4a,+v8.5a,+v8.6a,+v8a" }
101
+ // CHECK: attributes #4 = { {{.*}} "target-cpu"="cortex-a710" "target-features"="+bf16,+complxnum,+crc,+dotprod,+flagm,+fp-armv8,+fp16fml,+fullfp16,+i8mm,+jsconv,+lse,+mte,+neon,+pauth,+ras,+rcpc,+rdm,+sb,+sve,+sve2,+sve2-bitperm,+v8.1a,+v8.2a,+v8.3a,+v8.4a,+v8.5a,+v8a,+v9a " }
102
102
// CHECK: attributes #5 = { {{.*}} "tune-cpu"="cortex-a710" }
103
103
// CHECK: attributes #6 = { {{.*}} "target-cpu"="generic" }
104
104
// CHECK: attributes #7 = { {{.*}} "tune-cpu"="generic" }
105
- // CHECK: attributes #8 = { {{.*}} "target-cpu"="neoverse-n1" "target-features"="+aes,+crc,+dotprod,+fp-armv8,+fullfp16,+lse,+neon,+ras,+rcpc,+rdm,+sha2,+spe,+ssbs" "tune-cpu"="cortex-a710" }
105
+ // CHECK: attributes #8 = { {{.*}} "target-cpu"="neoverse-n1" "target-features"="+aes,+crc,+dotprod,+fp-armv8,+fullfp16,+lse,+neon,+ras,+rcpc,+rdm,+sha2,+spe,+ssbs,+v8.1a,+v8.2a,+v8a " "tune-cpu"="cortex-a710" }
106
106
// CHECK: attributes #9 = { {{.*}} "target-features"="+fp-armv8,+fullfp16,+neon,+sve" "tune-cpu"="cortex-a710" }
107
- // CHECK: attributes #10 = { {{.*}} "target-cpu"="neoverse-v1" "target-features"="+aes,+bf16,+complxnum,+crc,+dotprod,+fp-armv8,+fp16fml,+fullfp16,+i8mm,+jsconv,+lse,+neon,+pauth,+rand,+ras,+rcpc,+rdm,+sha2,+sha3,+sm4,+spe,+ssbs,+sve,+sve2" }
108
- // CHECK: attributes #11 = { {{.*}} "target-cpu"="neoverse-v1" "target-features"="+aes,+bf16,+complxnum,+crc,+dotprod,+fp-armv8,+fp16fml,+fullfp16,+i8mm,+jsconv,+lse,+neon,+pauth,+rand,+ras,+rcpc,+rdm,+sha2,+sha3,+sm4,+spe,+ssbs,-sve" }
107
+ // CHECK: attributes #10 = { {{.*}} "target-cpu"="neoverse-v1" "target-features"="+aes,+bf16,+complxnum,+crc,+dotprod,+fp-armv8,+fp16fml,+fullfp16,+i8mm,+jsconv,+lse,+neon,+pauth,+rand,+ras,+rcpc,+rdm,+sha2,+sha3,+sm4,+spe,+ssbs,+sve,+sve2,+v8.1a,+v8.2a,+v8.3a,+v8.4a,+v8a " }
108
+ // CHECK: attributes #11 = { {{.*}} "target-cpu"="neoverse-v1" "target-features"="+aes,+bf16,+complxnum,+crc,+dotprod,+fp-armv8,+fp16fml,+fullfp16,+i8mm,+jsconv,+lse,+neon,+pauth,+rand,+ras,+rcpc,+rdm,+sha2,+sha3,+sm4,+spe,+ssbs,+v8.1a,+v8.2a,+v8.3a,+v8.4a,+v8a, -sve" }
109
109
// CHECK: attributes #12 = { {{.*}} "target-features"="+fp-armv8,+fullfp16,+neon,+sve" }
110
- // CHECK: attributes #13 = { {{.*}} "target-features"="+fp-armv8,+fullfp16,+neon,+sve,-sve2" }
111
- // CHECK: attributes #14 = { {{.*}} "target-features"="+fullfp16" }
112
- // CHECK: attributes #15 = { {{.*}} "target-cpu"="neoverse-n1" "target-features"="+aes,+bf16,+complxnum,+crc,+dotprod,+fp-armv8,+fullfp16,+i8mm,+jsconv,+lse,+neon,+pauth,+ras,+rcpc,+rdm,+sha2,+spe,+ssbs,+sve,+sve2,+v8.1a,+v8.2a,+v8.3a,+v8.4a,+v8.5a,+v8.6a,+v8a" "tune-cpu"="cortex-a710" }
113
- // CHECK: attributes #16 = { {{.*}} "branch-target-enforcement"="true" "guarded-control-stack"="true" {{.*}} "target-features"="+aes,+bf16,+complxnum,+crc,+dotprod,+fp-armv8,+fullfp16,+i8mm,+jsconv,+lse,+neon,+pauth,+ras,+rcpc,+rdm,+sha2,+spe,+ssbs,+sve,+sve2,+v8.1a,+v8.2a,+v8.3a,+v8.4a,+v8.5a,+v8.6a,+v8a" "tune-cpu"="cortex-a710" }
114
- // CHECK: attributes #17 = { {{.*}} "target-features"="-neon" }
115
- // CHECK: attributes #18 = { {{.*}} "target-features"="-v9.3a" }
110
+ // CHECK: attributes #13 = { {{.*}} "target-features"="+fp-armv8,+fullfp16,+neon" }
111
+ // CHECK: attributes #14 = { {{.*}} "target-cpu"="neoverse-n1" "target-features"="+aes,+bf16,+complxnum,+crc,+dotprod,+fp-armv8,+fullfp16,+i8mm,+jsconv,+lse,+neon,+pauth,+ras,+rcpc,+rdm,+sha2,+spe,+ssbs,+sve,+sve2,+v8.1a,+v8.2a,+v8.3a,+v8.4a,+v8.5a,+v8.6a,+v8a" "tune-cpu"="cortex-a710" }
112
+ // CHECK: attributes #15 = { {{.*}} "branch-target-enforcement"="true" "guarded-control-stack"="true" {{.*}} "target-features"="+aes,+bf16,+complxnum,+crc,+dotprod,+fp-armv8,+fullfp16,+i8mm,+jsconv,+lse,+neon,+pauth,+ras,+rcpc,+rdm,+sha2,+spe,+ssbs,+sve,+sve2,+v8.1a,+v8.2a,+v8.3a,+v8.4a,+v8.5a,+v8.6a,+v8a" "tune-cpu"="cortex-a710" }
113
+ // CHECK-NOT: attributes #16 = {{.*}} "target-features"
114
+ // CHECK: attributes #17 = { {{.*}} "target-features"="-v9.3a" }
0 commit comments