reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

tools/clang/lib/CodeGen/CGExprComplex.cpp
  358     Real = Builder.CreateLoad(RealP, isVolatile, SrcPtr.getName() + ".real");
  363     Imag = Builder.CreateLoad(ImagP, isVolatile, SrcPtr.getName() + ".imag");
  381   Builder.CreateStore(Val.first, RealPtr, lvalue.isVolatileQualified());
  382   Builder.CreateStore(Val.second, ImagPtr, lvalue.isVolatileQualified());
  467     V = Builder.CreateElementBitCast(V, CGF.ConvertType(DestTy));
  473     Address Addr = Builder.CreateElementBitCast(SourceLVal.getAddress(),
  553     ResR = Builder.CreateFNeg(Op.first,  "neg.r");
  554     ResI = Builder.CreateFNeg(Op.second, "neg.i");
  556     ResR = Builder.CreateNeg(Op.first,  "neg.r");
  557     ResI = Builder.CreateNeg(Op.second, "neg.i");
  569     ResI = Builder.CreateFNeg(Op.second, "conj.i");
  571     ResI = Builder.CreateNeg(Op.second, "conj.i");
  580     ResR = Builder.CreateFAdd(Op.LHS.first,  Op.RHS.first,  "add.r");
  582       ResI = Builder.CreateFAdd(Op.LHS.second, Op.RHS.second, "add.i");
  587     ResR = Builder.CreateAdd(Op.LHS.first,  Op.RHS.first,  "add.r");
  590     ResI = Builder.CreateAdd(Op.LHS.second, Op.RHS.second, "add.i");
  598     ResR = Builder.CreateFSub(Op.LHS.first, Op.RHS.first, "sub.r");
  600       ResI = Builder.CreateFSub(Op.LHS.second, Op.RHS.second, "sub.i");
  603                            : Builder.CreateFNeg(Op.RHS.second, "sub.i");
  606     ResR = Builder.CreateSub(Op.LHS.first, Op.RHS.first, "sub.r");
  609     ResI = Builder.CreateSub(Op.LHS.second, Op.RHS.second, "sub.i");
  701       Value *AC = Builder.CreateFMul(Op.LHS.first, Op.RHS.first, "mul_ac");
  702       Value *BD = Builder.CreateFMul(Op.LHS.second, Op.RHS.second, "mul_bd");
  703       Value *AD = Builder.CreateFMul(Op.LHS.first, Op.RHS.second, "mul_ad");
  704       Value *BC = Builder.CreateFMul(Op.LHS.second, Op.RHS.first, "mul_bc");
  708       ResR = Builder.CreateFSub(AC, BD, "mul_r");
  709       ResI = Builder.CreateFAdd(AD, BC, "mul_i");
  713       Value *IsRNaN = Builder.CreateFCmpUNO(ResR, ResR, "isnan_cmp");
  716       llvm::Instruction *Branch = Builder.CreateCondBr(IsRNaN, INaNBB, ContBB);
  726       Value *IsINaN = Builder.CreateFCmpUNO(ResI, ResI, "isnan_cmp");
  728       Branch = Builder.CreateCondBr(IsINaN, LibCallBB, ContBB);
  736       Builder.CreateBr(ContBB);
  741       llvm::PHINode *RealPHI = Builder.CreatePHI(ResR->getType(), 3, "real_mul_phi");
  745       llvm::PHINode *ImagPHI = Builder.CreatePHI(ResI->getType(), 3, "imag_mul_phi");
  757     ResR = Builder.CreateFMul(Op.LHS.first, Op.RHS.first, "mul.rl");
  760                ? Builder.CreateFMul(Op.LHS.second, Op.RHS.first, "mul.il")
  761                : Builder.CreateFMul(Op.LHS.first, Op.RHS.second, "mul.ir");
  765     Value *ResRl = Builder.CreateMul(Op.LHS.first, Op.RHS.first, "mul.rl");
  766     Value *ResRr = Builder.CreateMul(Op.LHS.second, Op.RHS.second, "mul.rr");
  767     ResR = Builder.CreateSub(ResRl, ResRr, "mul.r");
  769     Value *ResIl = Builder.CreateMul(Op.LHS.second, Op.RHS.first, "mul.il");
  770     Value *ResIr = Builder.CreateMul(Op.LHS.first, Op.RHS.second, "mul.ir");
  771     ResI = Builder.CreateAdd(ResIl, ResIr, "mul.i");
  818       llvm::Value *AC = Builder.CreateFMul(LHSr, RHSr); // a*c
  819       llvm::Value *BD = Builder.CreateFMul(LHSi, RHSi); // b*d
  820       llvm::Value *ACpBD = Builder.CreateFAdd(AC, BD); // ac+bd
  822       llvm::Value *CC = Builder.CreateFMul(RHSr, RHSr); // c*c
  823       llvm::Value *DD = Builder.CreateFMul(RHSi, RHSi); // d*d
  824       llvm::Value *CCpDD = Builder.CreateFAdd(CC, DD); // cc+dd
  826       llvm::Value *BC = Builder.CreateFMul(LHSi, RHSr); // b*c
  827       llvm::Value *AD = Builder.CreateFMul(LHSr, RHSi); // a*d
  828       llvm::Value *BCmAD = Builder.CreateFSub(BC, AD); // bc-ad
  830       DSTr = Builder.CreateFDiv(ACpBD, CCpDD);
  831       DSTi = Builder.CreateFDiv(BCmAD, CCpDD);
  835       DSTr = Builder.CreateFDiv(LHSr, RHSr);
  836       DSTi = Builder.CreateFDiv(LHSi, RHSr);
  842     llvm::Value *Tmp1 = Builder.CreateMul(LHSr, RHSr); // a*c
  843     llvm::Value *Tmp2 = Builder.CreateMul(LHSi, RHSi); // b*d
  844     llvm::Value *Tmp3 = Builder.CreateAdd(Tmp1, Tmp2); // ac+bd
  846     llvm::Value *Tmp4 = Builder.CreateMul(RHSr, RHSr); // c*c
  847     llvm::Value *Tmp5 = Builder.CreateMul(RHSi, RHSi); // d*d
  848     llvm::Value *Tmp6 = Builder.CreateAdd(Tmp4, Tmp5); // cc+dd
  850     llvm::Value *Tmp7 = Builder.CreateMul(LHSi, RHSr); // b*c
  851     llvm::Value *Tmp8 = Builder.CreateMul(LHSr, RHSi); // a*d
  852     llvm::Value *Tmp9 = Builder.CreateSub(Tmp7, Tmp8); // bc-ad
  855       DSTr = Builder.CreateUDiv(Tmp3, Tmp6);
  856       DSTi = Builder.CreateUDiv(Tmp9, Tmp6);
  858       DSTr = Builder.CreateSDiv(Tmp3, Tmp6);
  859       DSTi = Builder.CreateSDiv(Tmp9, Tmp6);
 1032   LHSBlock = Builder.GetInsertBlock();
 1039   RHSBlock = Builder.GetInsertBlock();
 1044   llvm::PHINode *RealPN = Builder.CreatePHI(LHS.first->getType(), 2, "cond.r");
 1049   llvm::PHINode *ImagPN = Builder.CreatePHI(LHS.first->getType(), 2, "cond.i");