diff --git a/clang/lib/CodeGen/CGHLSLRuntime.cpp b/clang/lib/CodeGen/CGHLSLRuntime.cpp --- a/clang/lib/CodeGen/CGHLSLRuntime.cpp +++ b/clang/lib/CodeGen/CGHLSLRuntime.cpp @@ -364,7 +364,6 @@ // Copy function attributes over, we have no argument or return attributes // that can be valid on the real entry. - // This is what I want to do AttributeList NewAttrs = AttributeList::get(Ctx, AttributeList::FunctionIndex, Fn->getAttributes().getFnAttrs()); EntryFn->setAttributes(NewAttrs); diff --git a/mlir/lib/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.cpp b/mlir/lib/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.cpp --- a/mlir/lib/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.cpp +++ b/mlir/lib/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.cpp @@ -16,15 +16,12 @@ #include "mlir/Support/LLVM.h" #include "mlir/Target/LLVMIR/ModuleTranslation.h" -//#include "llvm/IR/Attributes.h" #include "llvm/IR/IRBuilder.h" #include "llvm/IR/InlineAsm.h" #include "llvm/IR/MDBuilder.h" #include "llvm/IR/MatrixBuilder.h" #include "llvm/IR/Operator.h" -#include "mlir/Conversion/ArithCommon/AttrToLLVMConverter.h" - using namespace mlir; using namespace mlir::LLVM; using mlir::LLVM::detail::createIntrinsicCall; @@ -118,16 +115,11 @@ } else { fn = llvm::Intrinsic::getDeclaration(module, id, {}); } - llvm::errs() << "hi\n"; Operation* op2 = op; - llvm::errs() << "hi2\n"; - if (auto fmf = dyn_cast(op2)) { - llvm::errs() << "setting fastmath flags\n"; + if (auto fmf = dyn_cast(op2)) builder.setFastMathFlags(getFastmathFlags(fmf)); - llvm::errs() << "done\n"; - } - llvm::CallInst *inst = + auto *inst = builder.CreateCall(fn, moduleTranslation.lookupValues(op.getOperands())); if (op.getNumResults() == 1) diff --git a/mlir/test/Dialect/LLVMIR/call-intrin.mlir b/mlir/test/Dialect/LLVMIR/call-intrin.mlir --- a/mlir/test/Dialect/LLVMIR/call-intrin.mlir +++ b/mlir/test/Dialect/LLVMIR/call-intrin.mlir @@ -11,7 +11,7 @@ llvm.func @round_sse41() -> vector<4xf32> { %0 = llvm.mlir.constant(1 : i32) : i32 %1 = llvm.mlir.constant(dense<0.2> : vector<4xf32>) : vector<4xf32> - %res = llvm.call_intrinsic "llvm.x86.sse41.round.ss"(%1, %1, %0) : (vector<4xf32>, vector<4xf32>, i32) -> vector<4xf32> {} + %res = llvm.call_intrinsic "llvm.x86.sse41.round.ss"(%1, %1, %0) : (vector<4xf32>, vector<4xf32>, i32) -> vector<4xf32> {fastmathFlags = #llvm.fastmath} llvm.return %res: vector<4xf32> }