@@ -874,8 +874,7 @@ impl Builder<'a, 'll, 'tcx> {
874
874
// FIXME: add a non-fast math version once
875
875
// https://bugs.llvm.org/show_bug.cgi?id=36732
876
876
// is fixed.
877
- let instr = llvm:: LLVMRustBuildVectorReduceFAdd ( self . llbuilder , acc, src)
878
- . expect ( "LLVMRustBuildVectorReduceFAdd is not available in LLVM version < 5.0" ) ;
877
+ let instr = llvm:: LLVMRustBuildVectorReduceFAdd ( self . llbuilder , acc, src) ;
879
878
llvm:: LLVMRustSetHasUnsafeAlgebra ( instr) ;
880
879
instr
881
880
}
@@ -886,92 +885,62 @@ impl Builder<'a, 'll, 'tcx> {
886
885
// FIXME: add a non-fast math version once
887
886
// https://bugs.llvm.org/show_bug.cgi?id=36732
888
887
// is fixed.
889
- let instr = llvm:: LLVMRustBuildVectorReduceFMul ( self . llbuilder , acc, src)
890
- . expect ( "LLVMRustBuildVectorReduceFMul is not available in LLVM version < 5.0" ) ;
888
+ let instr = llvm:: LLVMRustBuildVectorReduceFMul ( self . llbuilder , acc, src) ;
891
889
llvm:: LLVMRustSetHasUnsafeAlgebra ( instr) ;
892
890
instr
893
891
}
894
892
}
895
893
pub fn vector_reduce_add ( & self , src : & ' ll Value ) -> & ' ll Value {
896
894
self . count_insn ( "vector.reduce.add" ) ;
897
- unsafe {
898
- let instr = llvm:: LLVMRustBuildVectorReduceAdd ( self . llbuilder , src) ;
899
- instr. expect ( "LLVMRustBuildVectorReduceAdd is not available in LLVM version < 5.0" )
900
- }
895
+ unsafe { llvm:: LLVMRustBuildVectorReduceAdd ( self . llbuilder , src) }
901
896
}
902
897
pub fn vector_reduce_mul ( & self , src : & ' ll Value ) -> & ' ll Value {
903
898
self . count_insn ( "vector.reduce.mul" ) ;
904
- unsafe {
905
- let instr = llvm:: LLVMRustBuildVectorReduceMul ( self . llbuilder , src) ;
906
- instr. expect ( "LLVMRustBuildVectorReduceMul is not available in LLVM version < 5.0" )
907
- }
899
+ unsafe { llvm:: LLVMRustBuildVectorReduceMul ( self . llbuilder , src) }
908
900
}
909
901
pub fn vector_reduce_and ( & self , src : & ' ll Value ) -> & ' ll Value {
910
902
self . count_insn ( "vector.reduce.and" ) ;
911
- unsafe {
912
- let instr = llvm:: LLVMRustBuildVectorReduceAnd ( self . llbuilder , src) ;
913
- instr. expect ( "LLVMRustBuildVectorReduceAnd is not available in LLVM version < 5.0" )
914
- }
903
+ unsafe { llvm:: LLVMRustBuildVectorReduceAnd ( self . llbuilder , src) }
915
904
}
916
905
pub fn vector_reduce_or ( & self , src : & ' ll Value ) -> & ' ll Value {
917
906
self . count_insn ( "vector.reduce.or" ) ;
918
- unsafe {
919
- let instr = llvm:: LLVMRustBuildVectorReduceOr ( self . llbuilder , src) ;
920
- instr. expect ( "LLVMRustBuildVectorReduceOr is not available in LLVM version < 5.0" )
921
- }
907
+ unsafe { llvm:: LLVMRustBuildVectorReduceOr ( self . llbuilder , src) }
922
908
}
923
909
pub fn vector_reduce_xor ( & self , src : & ' ll Value ) -> & ' ll Value {
924
910
self . count_insn ( "vector.reduce.xor" ) ;
925
- unsafe {
926
- let instr = llvm:: LLVMRustBuildVectorReduceXor ( self . llbuilder , src) ;
927
- instr. expect ( "LLVMRustBuildVectorReduceXor is not available in LLVM version < 5.0" )
928
- }
911
+ unsafe { llvm:: LLVMRustBuildVectorReduceXor ( self . llbuilder , src) }
929
912
}
930
913
pub fn vector_reduce_fmin ( & self , src : & ' ll Value ) -> & ' ll Value {
931
914
self . count_insn ( "vector.reduce.fmin" ) ;
932
- unsafe {
933
- let instr = llvm:: LLVMRustBuildVectorReduceFMin ( self . llbuilder , src, /*NoNaNs:*/ false ) ;
934
- instr. expect ( "LLVMRustBuildVectorReduceFMin is not available in LLVM version < 5.0" )
935
- }
915
+ unsafe { llvm:: LLVMRustBuildVectorReduceFMin ( self . llbuilder , src, /*NoNaNs:*/ false ) }
936
916
}
937
917
pub fn vector_reduce_fmax ( & self , src : & ' ll Value ) -> & ' ll Value {
938
918
self . count_insn ( "vector.reduce.fmax" ) ;
939
- unsafe {
940
- let instr = llvm:: LLVMRustBuildVectorReduceFMax ( self . llbuilder , src, /*NoNaNs:*/ false ) ;
941
- instr. expect ( "LLVMRustBuildVectorReduceFMax is not available in LLVM version < 5.0" )
942
- }
919
+ unsafe { llvm:: LLVMRustBuildVectorReduceFMax ( self . llbuilder , src, /*NoNaNs:*/ false ) }
943
920
}
944
921
pub fn vector_reduce_fmin_fast ( & self , src : & ' ll Value ) -> & ' ll Value {
945
922
self . count_insn ( "vector.reduce.fmin_fast" ) ;
946
923
unsafe {
947
- let instr = llvm:: LLVMRustBuildVectorReduceFMin ( self . llbuilder , src, /*NoNaNs:*/ true )
948
- . expect ( "LLVMRustBuildVectorReduceFMin is not available in LLVM version < 5.0" ) ;
924
+ let instr = llvm:: LLVMRustBuildVectorReduceFMin ( self . llbuilder , src, /*NoNaNs:*/ true ) ;
949
925
llvm:: LLVMRustSetHasUnsafeAlgebra ( instr) ;
950
926
instr
951
927
}
952
928
}
953
929
pub fn vector_reduce_fmax_fast ( & self , src : & ' ll Value ) -> & ' ll Value {
954
930
self . count_insn ( "vector.reduce.fmax_fast" ) ;
955
931
unsafe {
956
- let instr = llvm:: LLVMRustBuildVectorReduceFMax ( self . llbuilder , src, /*NoNaNs:*/ true )
957
- . expect ( "LLVMRustBuildVectorReduceFMax is not available in LLVM version < 5.0" ) ;
932
+ let instr = llvm:: LLVMRustBuildVectorReduceFMax ( self . llbuilder , src, /*NoNaNs:*/ true ) ;
958
933
llvm:: LLVMRustSetHasUnsafeAlgebra ( instr) ;
959
934
instr
960
935
}
961
936
}
962
937
pub fn vector_reduce_min ( & self , src : & ' ll Value , is_signed : bool ) -> & ' ll Value {
963
938
self . count_insn ( "vector.reduce.min" ) ;
964
- unsafe {
965
- let instr = llvm:: LLVMRustBuildVectorReduceMin ( self . llbuilder , src, is_signed) ;
966
- instr. expect ( "LLVMRustBuildVectorReduceMin is not available in LLVM version < 5.0" )
967
- }
939
+ unsafe { llvm:: LLVMRustBuildVectorReduceMin ( self . llbuilder , src, is_signed) }
968
940
}
969
941
pub fn vector_reduce_max ( & self , src : & ' ll Value , is_signed : bool ) -> & ' ll Value {
970
942
self . count_insn ( "vector.reduce.max" ) ;
971
- unsafe {
972
- let instr = llvm:: LLVMRustBuildVectorReduceMax ( self . llbuilder , src, is_signed) ;
973
- instr. expect ( "LLVMRustBuildVectorReduceMax is not available in LLVM version < 5.0" )
974
- }
943
+ unsafe { llvm:: LLVMRustBuildVectorReduceMax ( self . llbuilder , src, is_signed) }
975
944
}
976
945
977
946
pub fn extract_value ( & self , agg_val : & ' ll Value , idx : u64 ) -> & ' ll Value {
0 commit comments