@@ -57,6 +57,7 @@ static M256D: Type = Type::M256D;
5757
5858static TUPLE : Type = Type :: Tuple ;
5959static CPUID : Type = Type :: CpuidResult ;
60+ static NEVER : Type = Type :: Never ;
6061
6162#[ derive( Debug ) ]
6263enum Type {
@@ -73,6 +74,7 @@ enum Type {
7374 M256I ,
7475 Tuple ,
7576 CpuidResult ,
77+ Never ,
7678}
7779
7880x86_functions ! ( static FUNCTIONS ) ;
@@ -135,14 +137,20 @@ fn verify_all_signatures() {
135137 let mut all_valid = true ;
136138 ' outer: for rust in FUNCTIONS {
137139 match rust. name {
138- // These aren't defined by Intel but they're defined by what
139- // appears to be all other compilers. For more
140- // information see rust-lang-nursery/stdsimd#307, and
141- // otherwise these signatures have all been manually
142- // verified.
143- "__readeflags" | "__writeeflags" | "__cpuid_count" | "__cpuid"
144- | "__get_cpuid_max" => continue ,
145-
140+ // These aren't defined by Intel but they're defined by what appears
141+ // to be all other compilers. For more information see
142+ // rust-lang-nursery/stdsimd#307, and otherwise these signatures
143+ // have all been manually verified.
144+ "__readeflags" |
145+ "__writeeflags" |
146+ "__cpuid_count" |
147+ "__cpuid" |
148+ "__get_cpuid_max" |
149+ // The UD2 intrinsic is not defined by Intel, but it was agreed on
150+ // in the RFC Issue 2512:
151+ // https://github.com/rust-lang/rfcs/issues/2512
152+ "ud2"
153+ => continue ,
146154 _ => { }
147155 }
148156
0 commit comments