@@ -1053,50 +1053,48 @@ fn generic_simd_intrinsic(
10531053 let vec_ty = bx. type_vector ( elem_ty, in_len) ;
10541054
10551055 let ( intr_name, fn_ty) = match name {
1056- sym:: simd_fsqrt => ( "sqrt" , bx. type_func ( & [ vec_ty] , vec_ty) ) ,
1057- sym:: simd_fsin => ( "sin" , bx. type_func ( & [ vec_ty] , vec_ty) ) ,
1058- sym:: simd_fcos => ( "cos" , bx. type_func ( & [ vec_ty] , vec_ty) ) ,
1059- sym:: simd_fabs => ( "fabs" , bx. type_func ( & [ vec_ty] , vec_ty) ) ,
10601056 sym:: simd_ceil => ( "ceil" , bx. type_func ( & [ vec_ty] , vec_ty) ) ,
1061- sym:: simd_floor => ( "floor" , bx. type_func ( & [ vec_ty] , vec_ty) ) ,
1062- sym:: simd_round => ( "round" , bx. type_func ( & [ vec_ty] , vec_ty) ) ,
1063- sym:: simd_trunc => ( "trunc" , bx. type_func ( & [ vec_ty] , vec_ty) ) ,
1064- sym:: simd_fexp => ( "exp" , bx. type_func ( & [ vec_ty] , vec_ty) ) ,
1057+ sym:: simd_fabs => ( "fabs" , bx. type_func ( & [ vec_ty] , vec_ty) ) ,
1058+ sym:: simd_fcos => ( "cos" , bx. type_func ( & [ vec_ty] , vec_ty) ) ,
10651059 sym:: simd_fexp2 => ( "exp2" , bx. type_func ( & [ vec_ty] , vec_ty) ) ,
1060+ sym:: simd_fexp => ( "exp" , bx. type_func ( & [ vec_ty] , vec_ty) ) ,
10661061 sym:: simd_flog10 => ( "log10" , bx. type_func ( & [ vec_ty] , vec_ty) ) ,
10671062 sym:: simd_flog2 => ( "log2" , bx. type_func ( & [ vec_ty] , vec_ty) ) ,
10681063 sym:: simd_flog => ( "log" , bx. type_func ( & [ vec_ty] , vec_ty) ) ,
1064+ sym:: simd_floor => ( "floor" , bx. type_func ( & [ vec_ty] , vec_ty) ) ,
1065+ sym:: simd_fma => ( "fma" , bx. type_func ( & [ vec_ty, vec_ty, vec_ty] , vec_ty) ) ,
10691066 sym:: simd_fpowi => ( "powi" , bx. type_func ( & [ vec_ty, bx. type_i32 ( ) ] , vec_ty) ) ,
10701067 sym:: simd_fpow => ( "pow" , bx. type_func ( & [ vec_ty, vec_ty] , vec_ty) ) ,
1071- sym:: simd_fma => ( "fma" , bx. type_func ( & [ vec_ty, vec_ty, vec_ty] , vec_ty) ) ,
1068+ sym:: simd_fsin => ( "sin" , bx. type_func ( & [ vec_ty] , vec_ty) ) ,
1069+ sym:: simd_fsqrt => ( "sqrt" , bx. type_func ( & [ vec_ty] , vec_ty) ) ,
1070+ sym:: simd_round => ( "round" , bx. type_func ( & [ vec_ty] , vec_ty) ) ,
1071+ sym:: simd_trunc => ( "trunc" , bx. type_func ( & [ vec_ty] , vec_ty) ) ,
10721072 _ => return_error ! ( "unrecognized intrinsic `{}`" , name) ,
10731073 } ;
1074-
10751074 let llvm_name = & format ! ( "llvm.{0}.v{1}{2}" , intr_name, in_len, elem_ty_str) ;
10761075 let f = bx. declare_cfn ( & llvm_name, llvm:: UnnamedAddr :: No , fn_ty) ;
10771076 let c = bx. call ( f, & args. iter ( ) . map ( |arg| arg. immediate ( ) ) . collect :: < Vec < _ > > ( ) , None ) ;
1078- unsafe { llvm:: LLVMRustSetHasUnsafeAlgebra ( c) } ;
10791077 Ok ( c)
10801078 }
10811079
10821080 if std:: matches!(
10831081 name,
1084- sym:: simd_fsqrt
1085- | sym:: simd_fsin
1086- | sym:: simd_fcos
1082+ sym:: simd_ceil
10871083 | sym:: simd_fabs
1088- | sym:: simd_ceil
1089- | sym:: simd_floor
1090- | sym:: simd_round
1091- | sym:: simd_trunc
1092- | sym:: simd_fexp
1084+ | sym:: simd_fcos
10931085 | sym:: simd_fexp2
1086+ | sym:: simd_fexp
10941087 | sym:: simd_flog10
10951088 | sym:: simd_flog2
10961089 | sym:: simd_flog
1097- | sym:: simd_fpowi
1098- | sym:: simd_fpow
1090+ | sym:: simd_floor
10991091 | sym:: simd_fma
1092+ | sym:: simd_fpow
1093+ | sym:: simd_fpowi
1094+ | sym:: simd_fsin
1095+ | sym:: simd_fsqrt
1096+ | sym:: simd_round
1097+ | sym:: simd_trunc
11001098 ) {
11011099 return simd_simple_float_intrinsic ( name, in_elem, in_ty, in_len, bx, span, args) ;
11021100 }
0 commit comments