diff options
Diffstat (limited to 'clang/lib/CodeGen/TargetBuiltins/PPC.cpp')
| -rw-r--r-- | clang/lib/CodeGen/TargetBuiltins/PPC.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/TargetBuiltins/PPC.cpp b/clang/lib/CodeGen/TargetBuiltins/PPC.cpp index 270e9fc976f2..ba65cf1ce9b9 100644 --- a/clang/lib/CodeGen/TargetBuiltins/PPC.cpp +++ b/clang/lib/CodeGen/TargetBuiltins/PPC.cpp @@ -1152,10 +1152,13 @@ Value *CodeGenFunction::EmitPPCBuiltinExpr(unsigned BuiltinID, CallOps.push_back(Acc); } if (BuiltinID == PPC::BI__builtin_mma_dmmr || - BuiltinID == PPC::BI__builtin_mma_dmxor) { + BuiltinID == PPC::BI__builtin_mma_dmxor || + BuiltinID == PPC::BI__builtin_mma_disassemble_dmr) { Address Addr = EmitPointerWithAlignment(E->getArg(1)); Ops[1] = Builder.CreateLoad(Addr); } + if (BuiltinID == PPC::BI__builtin_mma_disassemble_dmr) + return Builder.CreateAlignedStore(Ops[1], Ops[0], MaybeAlign()); for (unsigned i=1; i<Ops.size(); i++) CallOps.push_back(Ops[i]); llvm::Function *F = CGM.getIntrinsic(ID); |
