|
reference, declaration → definition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
|
References
unittests/CodeGen/GlobalISel/CSETest.cpp 21 auto MIBInput = B.buildInstr(TargetOpcode::G_TRUNC, {s16}, {Copies[0]});
22 auto MIBInput1 = B.buildInstr(TargetOpcode::G_TRUNC, {s16}, {Copies[1]});
23 auto MIBAdd = B.buildInstr(TargetOpcode::G_ADD, {s16}, {MIBInput, MIBInput});
27 B.setCSEInfo(&CSEInfo);
28 CSEMIRBuilder CSEB(B.getState());
83 auto MIBInput = B.buildInstr(TargetOpcode::G_TRUNC, {s16}, {Copies[0]});
84 auto MIBAdd = B.buildInstr(TargetOpcode::G_ADD, {s16}, {MIBInput, MIBInput});
85 auto MIBZero = B.buildConstant(s16, 0);
89 B.setCSEInfo(&CSEInfo);
90 CSEMIRBuilder CSEB(B.getState());
unittests/CodeGen/GlobalISel/ConstantFoldingTest.cpp 25 ConstantFoldingMIRBuilder CFB(B.getState());
77 auto MIBCst1 = B.buildConstant(s32, 16);
78 auto MIBCst2 = B.buildConstant(s32, 9);
79 auto MIBFCst1 = B.buildFConstant(s32, 1.0000001);
80 auto MIBFCst2 = B.buildFConstant(s32, 2.0);
unittests/CodeGen/GlobalISel/GISelMITest.h 147 B.setMF(*MF);
149 B.setInsertPt(*EntryMBB, EntryMBB->end());
unittests/CodeGen/GlobalISel/KnownBitsTest.cpp 128 auto SignBit = B.buildConstant(S32, 0x80000000);
129 auto Zero = B.buildConstant(S32, 0);
unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp 39 B.buildInstr(TargetOpcode::G_CTTZ, {LLT::scalar(64)}, {Copies[0]});
42 LegalizerHelper Helper(*MF, Info, Observer, B);
71 B.buildInstr(TargetOpcode::G_CTTZ, {LLT::scalar(64)}, {Copies[0]});
74 LegalizerHelper Helper(*MF, Info, Observer, B);
105 B.buildInstr(TargetOpcode::G_CTTZ, {LLT::scalar(64)}, {Copies[0]});
108 LegalizerHelper Helper(*MF, Info, Observer, B);
138 auto MIBTrunc = B.buildTrunc(s8, Copies[0]);
139 auto MIBCTPOP = B.buildInstr(TargetOpcode::G_CTPOP, {s16}, {MIBTrunc});
142 LegalizerHelper Helper(*MF, Info, Observer, B);
171 auto MIBTrunc = B.buildTrunc(s8, Copies[0]);
172 auto MIBCTPOP = B.buildInstr(TargetOpcode::G_CTPOP, {s32}, {MIBTrunc});
175 LegalizerHelper Helper(*MF, Info, Observer, B);
200 auto MIBCTTZ = B.buildInstr(TargetOpcode::G_CTTZ_ZERO_UNDEF,
204 LegalizerHelper Helper(*MF, Info, Observer, B);
228 B.buildInstr(TargetOpcode::G_CTLZ, {LLT::scalar(64)}, {Copies[0]});
231 LegalizerHelper Helper(*MF, Info, Observer, B);
259 B.buildInstr(TargetOpcode::G_CTLZ, {LLT::scalar(64)}, {Copies[0]});
262 LegalizerHelper Helper(*MF, Info, Observer, B);
291 auto MIBTrunc = B.buildTrunc(s8, Copies[0]);
292 auto MIBCTLZ = B.buildInstr(TargetOpcode::G_CTLZ, {s8}, {MIBTrunc});
295 LegalizerHelper Helper(*MF, Info, Observer, B);
333 auto MIBTrunc = B.buildTrunc(s8, Copies[0]);
334 auto MIBCTLZ = B.buildInstr(TargetOpcode::G_CTLZ, {s8}, {MIBTrunc});
337 LegalizerHelper Helper(*MF, Info, Observer, B);
368 auto MIBTrunc = B.buildTrunc(s8, Copies[0]);
370 B.buildInstr(TargetOpcode::G_CTLZ_ZERO_UNDEF, {s8}, {MIBTrunc});
373 LegalizerHelper Helper(*MF, Info, Observer, B);
404 auto MIBTrunc = B.buildTrunc(s8, Copies[0]);
405 auto MIBCTPOP = B.buildInstr(TargetOpcode::G_CTPOP, {s8}, {MIBTrunc});
408 LegalizerHelper Helper(*MF, Info, Observer, B);
437 auto MIBTrunc = B.buildTrunc(s8, Copies[0]);
439 B.buildInstr(TargetOpcode::G_CTTZ_ZERO_UNDEF, {s8}, {MIBTrunc});
442 LegalizerHelper Helper(*MF, Info, Observer, B);
471 auto MIBTrunc = B.buildTrunc(s8, Copies[0]);
472 auto MIBCTTZ = B.buildInstr(TargetOpcode::G_CTTZ, {s8}, {MIBTrunc});
475 LegalizerHelper Helper(*MF, Info, Observer, B);
505 auto MIBTrunc = B.buildTrunc(s8, Copies[0]);
508 B.buildInstr(TargetOpcode::G_UADDO, {s8, CarryReg}, {MIBTrunc, MIBTrunc});
511 LegalizerHelper Helper(*MF, Info, Observer, B);
544 auto MIBTrunc = B.buildTrunc(s8, Copies[0]);
547 B.buildInstr(TargetOpcode::G_USUBO, {s8, CarryReg}, {MIBTrunc, MIBTrunc});
550 LegalizerHelper Helper(*MF, Info, Observer, B);
582 auto Op0 = B.buildUndef(V5S32);
583 auto Op1 = B.buildUndef(V5S32);
584 auto And = B.buildAnd(V5S32, Op0, Op1);
588 LegalizerHelper Helper(*MF, Info, Observer, B);
631 LegalizerHelper Helper(*MF, LI, Observer, B);
633 B.setInsertPt(*EntryMBB, EntryMBB->end());
635 auto Val0 = B.buildBitcast(v2s32, Copies[0]);
636 auto Val1 = B.buildBitcast(v2s32, Copies[1]);
638 auto And = B.buildAnd(v2s32, Val0, Val1);
675 LegalizerHelper Helper(*MF, LI, Observer, B);
676 B.setMBB(*EntryMBB);
687 auto InitVal = B.buildUndef(PhiTy);
688 auto InitOtherVal = B.buildConstant(s64, 999);
690 auto ICmp = B.buildICmp(CmpInst::ICMP_EQ, s1, Copies[0], Copies[1]);
691 B.buildBrCond(ICmp.getReg(0), *MidMBB);
692 B.buildBr(*EndMBB);
695 B.setMBB(*MidMBB);
696 auto MidVal = B.buildUndef(PhiTy);
697 auto MidOtherVal = B.buildConstant(s64, 345);
698 B.buildBr(*EndMBB);
700 B.setMBB(*EndMBB);
701 auto Phi = B.buildInstr(TargetOpcode::G_PHI)
710 B.buildInstr(TargetOpcode::G_PHI)
718 B.buildAnd(PhiTy, Phi.getReg(0), Phi.getReg(0));
763 B.buildInstr(TargetOpcode::G_FADD, {LLT::scalar(64)}, {Copies[0], Copies[1]},
768 B.buildInstr(TargetOpcode::G_FNEG, {LLT::scalar(64)}, {FAdd.getReg(0)},
773 B.buildInstr(TargetOpcode::G_FNEG, {LLT::scalar(64)}, {Copies[0]},
778 LegalizerHelper Helper(*MF, Info, Observer, B);
809 auto SMin = B.buildSMin(s64, Copies[0], Copies[1]);
810 auto SMax = B.buildSMax(s64, Copies[0], Copies[1]);
811 auto UMin = B.buildUMin(s64, Copies[0], Copies[1]);
812 auto UMax = B.buildUMax(s64, Copies[0], Copies[1]);
814 auto VecVal0 = B.buildBitcast(v2s32, Copies[0]);
815 auto VecVal1 = B.buildBitcast(v2s32, Copies[1]);
817 auto SMinV = B.buildSMin(v2s32, VecVal0, VecVal1);
818 auto SMaxV = B.buildSMax(v2s32, VecVal0, VecVal1);
819 auto UMinV = B.buildUMin(v2s32, VecVal0, VecVal1);
820 auto UMaxV = B.buildUMax(v2s32, VecVal0, VecVal1);
824 LegalizerHelper Helper(*MF, Info, Observer, B);
891 LegalizerHelper Helper(*MF, Info, Observer, B);
892 B.setInsertPt(*EntryMBB, EntryMBB->end());
894 Register Constant0 = B.buildConstant(S16, 1).getReg(0);
895 Register Constant1 = B.buildConstant(S16, 2).getReg(0);
896 auto BV0 = B.buildBuildVector(V2S16, {Constant0, Constant1});
897 auto BV1 = B.buildBuildVector(V2S16, {Constant0, Constant1});
940 LegalizerHelper Helper(*MF, Info, Observer, B);
941 B.setInsertPt(*EntryMBB, EntryMBB->end());
949 Merge0Ops.push_back(B.buildConstant(S3, I).getReg(0));
951 auto Merge0 = B.buildMerge(S24, Merge0Ops);
958 Merge1Ops.push_back(B.buildConstant(S3, I).getReg(0));
960 auto Merge1 = B.buildMerge(S21, Merge1Ops);
964 Merge2Ops.push_back(B.buildConstant(S8, I).getReg(0));
966 auto Merge2 = B.buildMerge(S16, Merge2Ops);
1030 LegalizerHelper Helper(*MF, Info, Observer, B);
1031 B.setInsertPt(*EntryMBB, EntryMBB->end());
1037 auto Lo = B.buildTrunc(S32, Copies[0]);
1038 auto Hi = B.buildTrunc(S32, Copies[1]);
1040 auto Merge = B.buildMerge(P0, {Lo.getReg(0), Hi.getReg(0)});
1068 auto MIB = B.buildInstr(
1070 {B.buildInstr(TargetOpcode::G_TRUNC, {LLT::scalar(32)}, {Copies[0]}),
1074 LegalizerHelper Helper(*MF, Info, Observer, B);
1099 auto MIB = B.buildInstr(
1101 {B.buildInstr(TargetOpcode::G_TRUNC, {LLT::scalar(16)}, {Copies[0]}),
1105 LegalizerHelper Helper(*MF, Info, Observer, B);
1129 auto MIB = B.buildInstr(
1131 {B.buildInstr(TargetOpcode::G_TRUNC, {LLT::scalar(32)}, {Copies[0]}),
1135 LegalizerHelper Helper(*MF, Info, Observer, B);
1161 auto MIB = B.buildInstr(
1163 {B.buildInstr(TargetOpcode::G_TRUNC, {LLT::scalar(32)}, {Copies[0]}),
1167 LegalizerHelper Helper(*MF, Info, Observer, B);
unittests/CodeGen/GlobalISel/MachineIRBuilderTest.cpp 17 B.buildConstant(LLT::scalar(32), 42);
18 B.buildFConstant(LLT::scalar(32), 1.0);
20 B.buildConstant(LLT::vector(2, 32), 99);
21 B.buildFConstant(LLT::vector(2, 32), 2.0);
25 B.buildFConstant(LLT::scalar(64), KVal);
53 EXPECT_DEATH(B.buildConstant(LLT::scalar(16), APV32),
55 EXPECT_DEATH(B.buildConstant(LLT::vector(2, 16), APV32),
60 EXPECT_DEATH(B.buildConstant(LLT::scalar(16), *CI),
62 EXPECT_DEATH(B.buildConstant(LLT::vector(2, 16), *CI),
67 EXPECT_DEATH(B.buildFConstant(LLT::scalar(16), *CF),
69 EXPECT_DEATH(B.buildFConstant(LLT::vector(2, 16), *CF),
85 auto MIBAdd = B.buildAdd(s64, Copies[0], Copies[1]);
89 B.buildAdd(MIBAdd->getOperand(0), MIBAdd->getOperand(1), MIBAdd->getOperand(2));
109 B.buildUnmerge(LLT::scalar(32), Copies[0]);
110 B.buildUnmerge(LLT::scalar(16), Copies[1]);
133 B.buildFAdd(S64, Copies[0], Copies[1]);
134 B.buildFSub(S64, Copies[0], Copies[1]);
135 B.buildFMA(S64, Copies[0], Copies[1], Copies[2]);
136 B.buildFMAD(S64, Copies[0], Copies[1], Copies[2]);
137 B.buildFMAD(S64, Copies[0], Copies[1], Copies[2], MachineInstr::FmNoNans);
138 B.buildFNeg(S64, Copies[0]);
139 B.buildFAbs(S64, Copies[0]);
140 B.buildFCopysign(S64, Copies[0], Copies[1]);
169 B.buildIntrinsic(Intrinsic::sqrt, {S64}, false)
175 B.buildIntrinsic(Intrinsic::sqrt, Results, false)
197 B.buildXor(S64, Copies[0], Copies[1]);
198 B.buildNot(S64, Copies[0]);
201 auto Merge = B.buildMerge(S128, {Copies[0], Copies[1]});
202 B.buildNot(S128, Merge);
226 B.buildCTPOP(S32, Copies[0]);
227 B.buildCTLZ(S32, Copies[0]);
228 B.buildCTLZ_ZERO_UNDEF(S32, Copies[1]);
229 B.buildCTTZ(S32, Copies[0]);
230 B.buildCTTZ_ZERO_UNDEF(S32, Copies[1]);
254 B.buildUITOFP(S32, Copies[0]);
255 B.buildSITOFP(S32, Copies[0]);
256 B.buildFPTOUI(S32, Copies[0]);
257 B.buildFPTOSI(S32, Copies[0]);
279 B.buildSMin(S64, Copies[0], Copies[1]);
280 B.buildSMax(S64, Copies[0], Copies[1]);
281 B.buildUMin(S64, Copies[0], Copies[1]);
282 B.buildUMax(S64, Copies[0], Copies[1]);
312 auto Ptr = B.buildUndef(P0);
313 B.buildAtomicRMWFAdd(S64, Ptr, Copies[0], *MMO);
314 B.buildAtomicRMWFSub(S64, Ptr, Copies[0], *MMO);
333 Register RegC0 = B.buildConstant(S32, 0)->getOperand(0).getReg();
334 Register RegC1 = B.buildConstant(S32, 1)->getOperand(0).getReg();
335 Register RegC2 = B.buildConstant(S32, 2)->getOperand(0).getReg();
336 Register RegC3 = B.buildConstant(S32, 3)->getOperand(0).getReg();
340 B.buildMerge(LLT::scalar(128), {RegC0, RegC1, RegC2, RegC3});
344 B.buildMerge(V2x32, {RegC0, RegC1})->getOperand(0).getReg();
346 B.buildMerge(V2x32, {RegC2, RegC3})->getOperand(0).getReg();
348 B.buildMerge(LLT::vector(4, 32), {RegC0C1, RegC2C3});
unittests/CodeGen/GlobalISel/PatternMatchTest.cpp 37 auto MIBCst = B.buildConstant(LLT::scalar(64), 42);
49 auto MIBAdd = B.buildAdd(s64, Copies[0], Copies[1]);
62 auto MIBMul = B.buildMul(s64, MIBAdd, Copies[2]);
80 auto MIBMul2 = B.buildMul(s64, Copies[0], B.buildConstant(s64, 42));
80 auto MIBMul2 = B.buildMul(s64, Copies[0], B.buildConstant(s64, 42));
91 auto MIBSub = B.buildSub(s64, Copies[0], B.buildConstant(s64, 42));
91 auto MIBSub = B.buildSub(s64, Copies[0], B.buildConstant(s64, 42));
96 auto MIBFMul = B.buildInstr(TargetOpcode::G_FMUL, {s64},
97 {Copies[0], B.buildConstant(s64, 42)});
106 auto MIBFSub = B.buildInstr(TargetOpcode::G_FSUB, {s64},
107 {Copies[0], B.buildConstant(s64, 42)});
114 auto MIBAnd = B.buildAnd(s64, Copies[0], Copies[1]);
123 auto MIBOr = B.buildOr(s64, Copies[0], Copies[1]);
139 auto Copy0s32 = B.buildFPTrunc(s32, Copies[0]);
142 auto MIBFabs = B.buildInstr(TargetOpcode::G_FABS, {s32}, {Copy0s32});
148 auto MIBFNeg = B.buildInstr(TargetOpcode::G_FNEG, {s32}, {Copy0s32});
158 auto MIBFCst = B.buildFConstant(s32, .5);
169 auto MIBFCst64 = B.buildFConstant(s64, .5);
181 auto MIBFCst16 = B.buildFConstant(s16, .5);
202 auto MIBTrunc = B.buildTrunc(s32, Copies[0]);
203 auto MIBAExt = B.buildAnyExt(s64, MIBTrunc);
204 auto MIBZExt = B.buildZExt(s64, MIBTrunc);
205 auto MIBSExt = B.buildSExt(s64, MIBTrunc);
249 auto MIBAdd = B.buildAdd(s64, Copies[0], Copies[1]);
257 auto MIBCast = B.buildCast(v2s32, Copies[0]);
267 auto MIBIntToPtr = B.buildCast(PtrTy, Copies[0]);
268 auto MIBPtrToInt = B.buildCast(s64, MIBIntToPtr);
285 auto MIBAdd = B.buildAdd(s64, Copies[0], Copies[1]);
318 auto MIBAdd = B.buildAdd(s64, Copies[0], Copies[1]);
320 B.buildCast(LLT::pointer(0, 32), MIBAdd);
321 B.buildCast(LLT::pointer(1, 32), MIBAdd);