@@ -67,46 +67,46 @@ pub(crate) fn global_gcc_features(sess: &Session, diagnostics: bool) -> Vec<Stri
6767// To find a list of GCC's names, check https://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html
6868pub fn to_gcc_features < ' a > ( sess : & Session , s : & ' a str ) -> SmallVec < [ & ' a str ; 2 ] > {
6969 // cSpell:disable
70- match ( sess. target . arch , s) {
70+ match ( & sess. target . arch , s) {
7171 // FIXME: seems like x87 does not exist?
72- ( Arch :: X86 | Arch :: X86_64 , "x87" ) => smallvec ! [ ] ,
73- ( Arch :: X86 | Arch :: X86_64 , "sse4.2" ) => smallvec ! [ "sse4.2" , "crc32" ] ,
74- ( Arch :: X86 | Arch :: X86_64 , "pclmulqdq" ) => smallvec ! [ "pclmul" ] ,
75- ( Arch :: X86 | Arch :: X86_64 , "rdrand" ) => smallvec ! [ "rdrnd" ] ,
76- ( Arch :: X86 | Arch :: X86_64 , "bmi1" ) => smallvec ! [ "bmi" ] ,
77- ( Arch :: X86 | Arch :: X86_64 , "cmpxchg16b" ) => smallvec ! [ "cx16" ] ,
78- ( Arch :: X86 | Arch :: X86_64 , "avx512vaes" ) => smallvec ! [ "vaes" ] ,
79- ( Arch :: X86 | Arch :: X86_64 , "avx512gfni" ) => smallvec ! [ "gfni" ] ,
80- ( Arch :: X86 | Arch :: X86_64 , "avx512vpclmulqdq" ) => smallvec ! [ "vpclmulqdq" ] ,
72+ ( & Arch :: X86 | & Arch :: X86_64 , "x87" ) => smallvec ! [ ] ,
73+ ( & Arch :: X86 | & Arch :: X86_64 , "sse4.2" ) => smallvec ! [ "sse4.2" , "crc32" ] ,
74+ ( & Arch :: X86 | & Arch :: X86_64 , "pclmulqdq" ) => smallvec ! [ "pclmul" ] ,
75+ ( & Arch :: X86 | & Arch :: X86_64 , "rdrand" ) => smallvec ! [ "rdrnd" ] ,
76+ ( & Arch :: X86 | & Arch :: X86_64 , "bmi1" ) => smallvec ! [ "bmi" ] ,
77+ ( & Arch :: X86 | & Arch :: X86_64 , "cmpxchg16b" ) => smallvec ! [ "cx16" ] ,
78+ ( & Arch :: X86 | & Arch :: X86_64 , "avx512vaes" ) => smallvec ! [ "vaes" ] ,
79+ ( & Arch :: X86 | & Arch :: X86_64 , "avx512gfni" ) => smallvec ! [ "gfni" ] ,
80+ ( & Arch :: X86 | & Arch :: X86_64 , "avx512vpclmulqdq" ) => smallvec ! [ "vpclmulqdq" ] ,
8181 // NOTE: seems like GCC requires 'avx512bw' for 'avx512vbmi2'.
82- ( Arch :: X86 | Arch :: X86_64 , "avx512vbmi2" ) => {
82+ ( & Arch :: X86 | & Arch :: X86_64 , "avx512vbmi2" ) => {
8383 smallvec ! [ "avx512vbmi2" , "avx512bw" ]
8484 }
8585 // NOTE: seems like GCC requires 'avx512bw' for 'avx512bitalg'.
86- ( Arch :: X86 | Arch :: X86_64 , "avx512bitalg" ) => {
86+ ( & Arch :: X86 | & Arch :: X86_64 , "avx512bitalg" ) => {
8787 smallvec ! [ "avx512bitalg" , "avx512bw" ]
8888 }
89- ( Arch :: AArch64 , "rcpc2" ) => smallvec ! [ "rcpc-immo" ] ,
90- ( Arch :: AArch64 , "dpb" ) => smallvec ! [ "ccpp" ] ,
91- ( Arch :: AArch64 , "dpb2" ) => smallvec ! [ "ccdp" ] ,
92- ( Arch :: AArch64 , "frintts" ) => smallvec ! [ "fptoint" ] ,
93- ( Arch :: AArch64 , "fcma" ) => smallvec ! [ "complxnum" ] ,
94- ( Arch :: AArch64 , "pmuv3" ) => smallvec ! [ "perfmon" ] ,
95- ( Arch :: AArch64 , "paca" ) => smallvec ! [ "pauth" ] ,
96- ( Arch :: AArch64 , "pacg" ) => smallvec ! [ "pauth" ] ,
89+ ( & Arch :: AArch64 , "rcpc2" ) => smallvec ! [ "rcpc-immo" ] ,
90+ ( & Arch :: AArch64 , "dpb" ) => smallvec ! [ "ccpp" ] ,
91+ ( & Arch :: AArch64 , "dpb2" ) => smallvec ! [ "ccdp" ] ,
92+ ( & Arch :: AArch64 , "frintts" ) => smallvec ! [ "fptoint" ] ,
93+ ( & Arch :: AArch64 , "fcma" ) => smallvec ! [ "complxnum" ] ,
94+ ( & Arch :: AArch64 , "pmuv3" ) => smallvec ! [ "perfmon" ] ,
95+ ( & Arch :: AArch64 , "paca" ) => smallvec ! [ "pauth" ] ,
96+ ( & Arch :: AArch64 , "pacg" ) => smallvec ! [ "pauth" ] ,
9797 // Rust ties fp and neon together. In GCC neon implicitly enables fp,
9898 // but we manually enable neon when a feature only implicitly enables fp
99- ( Arch :: AArch64 , "f32mm" ) => smallvec ! [ "f32mm" , "neon" ] ,
100- ( Arch :: AArch64 , "f64mm" ) => smallvec ! [ "f64mm" , "neon" ] ,
101- ( Arch :: AArch64 , "fhm" ) => smallvec ! [ "fp16fml" , "neon" ] ,
102- ( Arch :: AArch64 , "fp16" ) => smallvec ! [ "fullfp16" , "neon" ] ,
103- ( Arch :: AArch64 , "jsconv" ) => smallvec ! [ "jsconv" , "neon" ] ,
104- ( Arch :: AArch64 , "sve" ) => smallvec ! [ "sve" , "neon" ] ,
105- ( Arch :: AArch64 , "sve2" ) => smallvec ! [ "sve2" , "neon" ] ,
106- ( Arch :: AArch64 , "sve2-aes" ) => smallvec ! [ "sve2-aes" , "neon" ] ,
107- ( Arch :: AArch64 , "sve2-sm4" ) => smallvec ! [ "sve2-sm4" , "neon" ] ,
108- ( Arch :: AArch64 , "sve2-sha3" ) => smallvec ! [ "sve2-sha3" , "neon" ] ,
109- ( Arch :: AArch64 , "sve2-bitperm" ) => smallvec ! [ "sve2-bitperm" , "neon" ] ,
99+ ( & Arch :: AArch64 , "f32mm" ) => smallvec ! [ "f32mm" , "neon" ] ,
100+ ( & Arch :: AArch64 , "f64mm" ) => smallvec ! [ "f64mm" , "neon" ] ,
101+ ( & Arch :: AArch64 , "fhm" ) => smallvec ! [ "fp16fml" , "neon" ] ,
102+ ( & Arch :: AArch64 , "fp16" ) => smallvec ! [ "fullfp16" , "neon" ] ,
103+ ( & Arch :: AArch64 , "jsconv" ) => smallvec ! [ "jsconv" , "neon" ] ,
104+ ( & Arch :: AArch64 , "sve" ) => smallvec ! [ "sve" , "neon" ] ,
105+ ( & Arch :: AArch64 , "sve2" ) => smallvec ! [ "sve2" , "neon" ] ,
106+ ( & Arch :: AArch64 , "sve2-aes" ) => smallvec ! [ "sve2-aes" , "neon" ] ,
107+ ( & Arch :: AArch64 , "sve2-sm4" ) => smallvec ! [ "sve2-sm4" , "neon" ] ,
108+ ( & Arch :: AArch64 , "sve2-sha3" ) => smallvec ! [ "sve2-sha3" , "neon" ] ,
109+ ( & Arch :: AArch64 , "sve2-bitperm" ) => smallvec ! [ "sve2-bitperm" , "neon" ] ,
110110 ( _, s) => smallvec ! [ s] ,
111111 }
112112 // cSpell:enable
0 commit comments