pub fn minnum(&self, lhs: ValueRef, rhs: ValueRef) -> ValueRef {
self.count_insn("minnum");
unsafe {
- llvm::LLVMRustBuildMinNum(self.llbuilder, lhs, rhs)
+ let instr = llvm::LLVMRustBuildMinNum(self.llbuilder, lhs, rhs);
+ bug!("LLVMRustBuildMinNum is not available in LLVM version < 6.0");
+ instr
}
}
pub fn maxnum(&self, lhs: ValueRef, rhs: ValueRef) -> ValueRef {
self.count_insn("maxnum");
unsafe {
- llvm::LLVMRustBuildMaxNum(self.llbuilder, lhs, rhs)
+ let instr = llvm::LLVMRustBuildMaxNum(self.llbuilder, lhs, rhs);
+ bug!("LLVMRustBuildMaxNum is not available in LLVM version < 6.0");
+ instr
}
}
}
#endif
+#if LLVM_VERSION_GE(6, 0)
extern "C" LLVMValueRef
LLVMRustBuildMinNum(LLVMBuilderRef B, LLVMValueRef LHS, LLVMValueRef RHS) {
return wrap(unwrap(B)->CreateMinNum(unwrap(LHS),unwrap(RHS)));
LLVMRustBuildMaxNum(LLVMBuilderRef B, LLVMValueRef LHS, LLVMValueRef RHS) {
return wrap(unwrap(B)->CreateMaxNum(unwrap(LHS),unwrap(RHS)));
}
+#else
+extern "C" LLVMValueRef
+LLVMRustBuildMinNum(LLVMBuilderRef, LLVMValueRef, LLVMValueRef) {
+ return nullptr;
+}
+extern "C" LLVMValueRef
+LLVMRustBuildMaxNum(LLVMBuilderRef, LLVMValueRef, LLVMValueRef) {
+ return nullptr;
+}
+#endif