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