Home | History | Annotate | Download | only in priv

Lines Matching refs:IROp

275 static IRExpr* unop ( IROp op, IRExpr* a )
280 static IRExpr* binop ( IROp op, IRExpr* a1, IRExpr* a2 )
285 static IRExpr* triop ( IROp op, IRExpr* a1, IRExpr* a2, IRExpr* a3 )
456 static IROp mkAND ( IRType ty ) {
464 static IROp mkOR ( IRType ty ) {
472 static IROp mkXOR ( IRType ty ) {
480 static IROp mkSHL ( IRType ty ) {
488 static IROp mkSHR ( IRType ty ) {
496 static IROp mkSAR ( IRType ty ) {
504 static IROp mkNOT ( IRType ty ) {
512 static IROp mkADD ( IRType ty ) {
520 static IROp mkSUB ( IRType ty ) {
528 static IROp mkADDF ( IRType ty ) {
536 static IROp mkSUBF ( IRType ty ) {
544 static IROp mkMULF ( IRType ty ) {
552 static IROp mkDIVF ( IRType ty ) {
560 static IROp mkNEGF ( IRType ty ) {
568 static IROp mkABSF ( IRType ty ) {
576 static IROp mkSQRTF ( IRType ty ) {
584 static IROp mkVecADD ( UInt size ) {
585 const IROp ops[4]
591 static IROp mkVecQADDU ( UInt size ) {
592 const IROp ops[4]
598 static IROp mkVecQADDS ( UInt size ) {
599 const IROp ops[4]
605 static IROp mkVecQADDEXTSUSATUU ( UInt size ) {
606 const IROp ops[4]
613 static IROp mkVecQADDEXTUSSATSS ( UInt size ) {
614 const IROp ops[4]
621 static IROp mkVecSUB ( UInt size ) {
622 const IROp ops[4]
628 static IROp mkVecQSUBU ( UInt size ) {
629 const IROp ops[4]
635 static IROp mkVecQSUBS ( UInt size ) {
636 const IROp ops[4]
642 static IROp mkVecSARN ( UInt size ) {
643 const IROp ops[4]
649 static IROp mkVecSHRN ( UInt size ) {
650 const IROp ops[4]
656 static IROp mkVecSHLN ( UInt size ) {
657 const IROp ops[4]
663 static IROp mkVecCATEVENLANES ( UInt size ) {
664 const IROp ops[4]
671 static IROp mkVecCATODDLANES ( UInt size ) {
672 const IROp ops[4]
679 static IROp mkVecINTERLEAVELO ( UInt size ) {
680 const IROp ops[4]
687 static IROp mkVecINTERLEAVEHI ( UInt size ) {
688 const IROp ops[4]
695 static IROp mkVecMAXU ( UInt size ) {
696 const IROp ops[4]
702 static IROp mkVecMAXS ( UInt size ) {
703 const IROp ops[4]
709 static IROp mkVecMINU ( UInt size ) {
710 const IROp ops[4]
716 static IROp mkVecMINS ( UInt size ) {
717 const IROp ops[4]
723 static IROp mkVecMUL ( UInt size ) {
724 const IROp ops[4]
730 static IROp mkVecMULLU ( UInt sizeNarrow ) {
731 const IROp ops[4]
737 static IROp mkVecMULLS ( UInt sizeNarrow ) {
738 const IROp ops[4]
744 static IROp mkVecQDMULLS ( UInt sizeNarrow ) {
745 const IROp ops[4]
751 static IROp mkVecCMPEQ ( UInt size ) {
752 const IROp ops[4]
758 static IROp mkVecCMPGTU ( UInt size ) {
759 const IROp ops[4]
765 static IROp mkVecCMPGTS ( UInt size ) {
766 const IROp ops[4]
772 static IROp mkVecABS ( UInt size ) {
773 const IROp ops[4]
779 static IROp mkVecZEROHIxxOFV128 ( UInt size ) {
780 const IROp ops[4]
795 static IROp mkVecQDMULHIS ( UInt size ) {
796 const IROp ops[4]
802 static IROp mkVecQRDMULHIS ( UInt size ) {
803 const IROp ops[4]
809 static IROp mkVecQANDUQSH ( UInt size ) {
810 const IROp ops[4]
817 static IROp mkVecQANDSQSH ( UInt size ) {
818 const IROp ops[4]
825 static IROp mkVecQANDUQRSH ( UInt size ) {
826 const IROp ops[4]
833 static IROp mkVecQANDSQRSH ( UInt size ) {
834 const IROp ops[4]
841 static IROp mkVecSHU ( UInt size ) {
842 const IROp ops[4]
848 static IROp mkVecSHS ( UInt size ) {
849 const IROp ops[4]
855 static IROp mkVecRSHU ( UInt size ) {
856 const IROp ops[4]
862 static IROp mkVecRSHS ( UInt size ) {
863 const IROp ops[4]
869 static IROp mkVecNARROWUN ( UInt sizeNarrow ) {
870 const IROp ops[4]
877 static IROp mkVecQNARROWUNSU ( UInt sizeNarrow ) {
878 const IROp ops[4]
885 static IROp mkVecQNARROWUNSS ( UInt sizeNarrow ) {
886 const IROp ops[4]
893 static IROp mkVecQNARROWUNUU ( UInt sizeNarrow ) {
894 const IROp ops[4]
901 static IROp mkVecQANDqshrNNARROWUU ( UInt sizeNarrow ) {
902 const IROp ops[4]
909 static IROp mkVecQANDqsarNNARROWSS ( UInt sizeNarrow ) {
910 const IROp ops[4]
917 static IROp mkVecQANDqsarNNARROWSU ( UInt sizeNarrow ) {
918 const IROp ops[4]
925 static IROp mkVecQANDqrshrNNARROWUU ( UInt sizeNarrow ) {
926 const IROp ops[4]
933 static IROp mkVecQANDqrsarNNARROWSS ( UInt sizeNarrow ) {
934 const IROp ops[4]
941 static IROp mkVecQANDqrsarNNARROWSU ( UInt sizeNarrow ) {
942 const IROp ops[4]
949 static IROp mkVecQSHLNSATUU ( UInt size ) {
950 const IROp ops[4]
957 static IROp mkVecQSHLNSATSS ( UInt size ) {
958 const IROp ops[4]
965 static IROp mkVecQSHLNSATSU ( UInt size ) {
966 const IROp ops[4]
973 static IROp mkVecADDF ( UInt size ) {
974 const IROp ops[4]
980 static IROp mkVecMAXF ( UInt size ) {
981 const IROp ops[4]
987 static IROp mkVecMINF ( UInt size ) {
988 const IROp ops[4]
2504 const IROp ops64[4] = { Iop_And64, Iop_Or64, Iop_Xor64, Iop_And64 };
2505 const IROp ops32[4] = { Iop_And32, Iop_Or32, Iop_Xor32, Iop_And32 };
2825 IROp op = isSUB ? mkSUB(ty) : mkADD(ty);
2873 IROp op = isSUB ? mkSUB(ty) : mkADD(ty);
2877 IROp xorOp = is64 ? Iop_Xor64 : Iop_Xor32;
2932 IROp op = Iop_INVALID;
3396 IROp iop = Iop_INVALID;
3412 IROp opSHL = mkSHL(ty);
3413 IROp opSHR = mkSHR(ty);
3414 IROp opOR = mkOR(ty);
4179 void math_get_doubler_and_halver ( /*OUT*/IROp* doubler,
4180 /*OUT*/IROp* halver,
4220 IROp doubler = Iop_INVALID, halver = Iop_INVALID;
4251 IROp doubler = Iop_INVALID, halver = Iop_INVALID;
4287 IROp doubler = Iop_INVALID, halver = Iop_INVALID;
4333 IROp doubler = Iop_INVALID, halver = Iop_INVALID;
4365 IROp doubler = Iop_INVALID, halver = Iop_INVALID;
4401 IROp
7145 static IRTemp math_FOLDV ( IRTemp src, IROp op )
7444 IRTemp math_BINARY_WIDENING_V128 ( Bool is2, IROp opI64x2toV128,
7448 IROp slice = is2 ? Iop_V128HIto64 : Iop_V128to64;
7534 IROp opSAR = mkVecSARN(sizeNarrow+1);
7535 IROp opSHR = mkVecSHRN(sizeNarrow+1);
7536 IROp opSHL = mkVecSHLN(sizeNarrow+1);
7537 IROp opSxR = zWiden ? opSHR : opSAR;
7581 IROp ops[4] = { Iop_INVALID, Iop_INVALID, Iop_INVALID, Iop_INVALID };
7791 IROp mulOp = isU ? mkVecMULLU(size) : mkVecMULLS(size);
7792 IROp accOp = (mas == 'a') ? mkVecADD(size+1)
7875 IROp opMulls = mkVecMULLS(sizeNarrow);
7942 IROp qop = mkVecQSHLNSATUU(size);
7962 IROp qop = mkVecQSHLNSATSS(size);
7990 IROp qop = mkVecQSHLNSATSU(size);
8021 IROp opSHR = isU ? mkVecSHRN(size) : mkVecSARN(size);
8022 IROp opADD = mkVecADD(size);
8067 void updateQCFLAGwithDifferenceZHI ( IRTemp qres, IRTemp nres, IROp opZHI )
8314 IROp op = isUZP1 ? mkVecCATEVENLANES(size)
8341 IROp op1 = isTRN1 ? mkVecCATEVENLANES(size)
8343 IROp op2 = mkVecINTERLEAVEHI(size);
8364 IROp op = isZIP1 ? mkVecINTERLEAVELO(size)
8466 const IROp opMAXS[3]
8468 const IROp opMAXU[3]
8470 const IROp opMINS[3]
8472 const IROp opMINU[3]
8474 const IROp opADD[3]
8477 IROp op = Iop_INVALID;
8523 IROp opMXX = (isMIN ? mkVecMINF : mkVecMAXF)(2);
9082 IROp opZHI = mkVecZEROHIxxOFV128(isD ? 3 : 2);
9083 IROp opADD = mkVecADDF(isD ? 3 : 2);
9108 IROp opZHI = mkVecZEROHIxxOFV128(isD ? 3 : 2);
9109 IROp opMXX = (isMIN ? mkVecMINF : mkVecMAXF)(isD ? 3 : 2);
9160 IROp op = isU ? Iop_ShrN64x2 : Iop_SarN64x2;
9193 IROp op = isU ? Iop_Rsh64Ux2 : Iop_Rsh64Sx2;
9314 IROp op = Iop_INVALID;
9372 IROp opMUL = isD ? Iop_MulF64 : Iop_MulF32;
9373 IROp opCVT = isU ? (isD ? Iop_I64UtoF64 : Iop_I32UtoF32)
9410 IROp opMUL = isD ? Iop_MulF64 : Iop_MulF32;
9411 IROp opCVT = isU ? (isD ? Iop_F64toI64U : Iop_F32toI32U)
9487 IROp opZHI = mkVecZEROHIxxOFV128(size+1);
9537 IROp qop = Iop_INVALID;
9538 IROp nop = Iop_INVALID;
9607 IROp op = isR ? (isU ? mkVecRSHU(size) : mkVecRSHS(size))
9627 IROp op = isR ? (isU ? mkVecQANDUQRSH(size) : mkVecQANDSQRSH(size))
9748 IROp opCMP = isGE ? (isD ? Iop_CmpLE64Fx2 : Iop_CmpLE32Fx4)
9764 IROp opCMP = isD ? Iop_CmpLT64Fx2 : Iop_CmpLT32Fx4;
9780 IROp opCMP = isGT ? (isD ? Iop_CmpLT64Fx2 : Iop_CmpLT32Fx4)
9782 IROp opABS = isD ? Iop_Abs64Fx2 : Iop_Abs32Fx4;
9798 IROp op = isSQRT ? (isD ? Iop_RSqrtStep64Fx2 : Iop_RSqrtStep32Fx4)
9843 IROp qop = isUSQADD ? mkVecQADDEXTSUSATUU(size)
9845 IROp nop = mkVecADD(size);
9948 IROp opCmpEQ = isD ? Iop_CmpEQ64Fx2 : Iop_CmpEQ32Fx4;
9949 IROp opCmpLE = isD ? Iop_CmpLE64Fx2 : Iop_CmpLE32Fx4;
9950 IROp opCmpLT = isD ? Iop_CmpLT64Fx2 : Iop_CmpLT32Fx4;
9951 IROp opCmp = Iop_INVALID;
9980 IROp opN = Iop_INVALID;
10054 IROp cvt = Iop_INVALID;
10081 IROp iop = isU ? (isD ? Iop_I64UtoF64 : Iop_I32UtoF32)
10099 IROp op = isSQRT ? (isD ? Iop_RSqrtEst64Fx2 : Iop_RSqrtEst32Fx4)
10114 IROp op = isD ? Iop_RecpExpF64 : Iop_RecpExpF32;
10172 IROp opADD = isD ? Iop_Add64Fx2 : Iop_Add32Fx4;
10173 IROp opSUB = isD ? Iop_Sub64Fx2 : Iop_Sub32Fx4;
10174 IROp opMUL = isD ? Iop_Mul64Fx2 : Iop_Mul32Fx4;
10206 IROp opMUL = isD ? Iop_Mul64Fx2 : Iop_Mul32Fx4;
10259 IROp opZHI = mkVecZEROHIxxOFV128(size+1);
10300 IROp opZHI = mkVecZEROHIxxOFV128(size);
10356 IROp op = isU ? mkVecSHRN(size) : mkVecSARN(size);
10405 IROp op = isU ? mkVecRSHU(size) : mkVecRSHS(size);
10488 IROp op = mkVecSHLN(size);
10597 IROp op = Iop_INVALID;
10729 IROp opMUL = isD ? Iop_MulF64 : Iop_MulF32;
10730 IROp opCVT = isU ? (isD ? Iop_I64UtoF64 : Iop_I32UtoF32)
10775 IROp opMUL = isD ? Iop_MulF64 : Iop_MulF32;
10776 IROp opCVT = isU ? (isD ? Iop_F64toI64U : Iop_F32toI32U)
11098 IROp opADDSUB = isADD ? mkVecADD(size+1) : mkVecSUB(size+1);
11099 IROp opSxR = isU ? mkVecSHRN(size+1) : mkVecSARN(size+1);
11141 IROp qop = Iop_INVALID;
11142 IROp nop = Iop_INVALID;
11201 const IROp opXOR = Iop_XorV128;
11202 const IROp opAND = Iop_AndV128;
11203 const IROp opNOT = Iop_NotV128;
11284 IROp op = isR ? (isU ? mkVecRSHU(size) : mkVecRSHS(size))
11305 IROp op = isR ? (isU ? mkVecQANDUQRSH(size) : mkVecQANDSQRSH(size))
11342 IROp op = isMAX ? (isU ? mkVecMAXU(size) : mkVecMAXS(size))
11382 IROp op = isSUB ? mkVecSUB(size) : mkVecADD(size);
11419 IROp opMUL = mkVecMUL(size);
11420 IROp opADDSUB = isMLS ? mkVecSUB(size) : mkVecADD(size);
11440 const IROp opsPMUL[4]
11442 IROp opMUL = isPMUL ? opsPMUL[size] : mkVecMUL(size);
11465 IROp op = isMAX ? (isU ? mkVecMAXU(size) : mkVecMAXS(size))
11502 IROp opZHI = bitQ == 0 ? Iop_ZeroHI64ofV128 : Iop_INVALID;
11548 IROp opMXX = (isMIN ? mkVecMINF : mkVecMAXF)(isD ? X11 : X10);
11565 IROp opADD = isD ? Iop_Add64Fx2 : Iop_Add32Fx4;
11566 IROp opSUB = isD ? Iop_Sub64Fx2 : Iop_Sub32Fx4;
11567 IROp opMUL = isD ? Iop_Mul64Fx2 : Iop_Mul32Fx4;
11589 const IROp ops[4]
11591 IROp op = ops[size];
11608 IROp opSUB = isD ? Iop_Sub64Fx2 : Iop_Sub32Fx4;
11609 IROp opABS = isD ? Iop_Abs64Fx2 : Iop_Abs32Fx4;
11647 IROp opCMP = isGE ? (isD ? Iop_CmpLE64Fx2 : Iop_CmpLE32Fx4)
11663 IROp opCMP = isD ? Iop_CmpLT64Fx2 : Iop_CmpLT32Fx4;
11679 IROp opCMP = isGT ? (isD ? Iop_CmpLT64Fx2 : Iop_CmpLT32Fx4)
11681 IROp opABS = isD ? Iop_Abs64Fx2 : Iop_Abs32Fx4;
11703 IROp opMXX = (isMIN ? mkVecMINF : mkVecMAXF)(isD ? 3 : 2);
11752 const IROp ops[2] = { Iop_Div32Fx4, Iop_Div64Fx2 };
11753 IROp op = ops[size];
11772 IROp op = isSQRT ? (isD ? Iop_RSqrtStep64Fx2 : Iop_RSqrtStep32Fx4)
11814 const IROp iops[3] = { Iop_Reverse8sIn64_x2,
11831 IROp iop = isH ? Iop_Reverse16sIn32_x4 : Iop_Reverse8sIn32_x4;
11890 IROp qop = isUSQADD ? mkVecQADDEXTSUSATUU(size)
11892 IROp nop = mkVecADD(size);
11918 const IROp opsCLS[3] = { Iop_Cls8x16, Iop_Cls16x8, Iop_Cls32x4 };
11919 const IROp opsCLZ[3] = { Iop_Clz8x16, Iop_Clz16x8, Iop_Clz32x4 };
11981 IROp opGTS = mkVecCMPGTS(size);
12062 IROp opCmpEQ = isD ? Iop_CmpEQ64Fx2 : Iop_CmpEQ32Fx4;
12063 IROp opCmpLE = isD ? Iop_CmpLE64Fx2 : Iop_CmpLE32Fx4;
12064 IROp opCmpLT = isD ? Iop_CmpLT64Fx2 : Iop_CmpLT32Fx4;
12065 IROp opCmp = Iop_INVALID;
12092 IROp op = isFNEG ? (size == X10 ? Iop_Neg32Fx4 : Iop_Neg64Fx2)
12108 IROp opN = mkVecNARROWUN(size);
12128 IROp opN = Iop_INVALID;
12161 IROp opINT = is2 ? mkVecINTERLEAVEHI(size) : mkVecINTERLEAVELO(size);
12162 IROp opSHL = mkVecSHLN(size+1);
12180 IROp opCvt = size == X00 ? Iop_F32toF16 : Iop_F64toF32;
12206 IROp opCvt = Iop_F64toF32;
12230 IROp opCvt = size == X00 ? Iop_F16toF32 : Iop_F32toF64;
12292 IROp opRND = isD ? Iop_RoundF64toInt : Iop_RoundF32toInt;
12344 IROp cvt = Iop_INVALID;
12374 IROp op = isREC ? Iop_RecipEst32Ux4 : Iop_RSqrtEst32Ux4;
12404 IROp iop = isU ? (isF64 ? Iop_I64UtoF64 : Iop_I32UtoF32)
12428 IROp op = isSQRT ? (isD ? Iop_RSqrtEst64Fx2 : Iop_RSqrtEst32Fx4)
12443 IROp op = isD ? Iop_Sqrt64Fx2 : Iop_Sqrt32Fx4;
12504 IROp opADD = isD ? Iop_Add64Fx2 : Iop_Add32Fx4;
12505 IROp opSUB = isD ? Iop_Sub64Fx2 : Iop_Sub32Fx4;
12506 IROp opMUL = isD ? Iop_Mul64Fx2 : Iop_Mul32Fx4;
12573 IROp opMUL = mkVecMUL(size);
12574 IROp opADD = mkVecADD(size);
12575 IROp opSUB = mkVecSUB(size);
12736 IROp opZHI = bitQ == 0 ? Iop_ZeroHI64ofV128 : Iop_INVALID;
13183 IROp iop = Iop_INVALID;
13215 IROp iop = mkMULF(ity);
13216 IROp iopn = mkNEGF(ity);
13278 IROp opADD = mkADDF(ity);
13279 IROp opSUB = mkSUBF(ity);
13280 IROp opMUL = mkMULF(ity);
13281 IROp opNEG = mkNEGF(ity);
13392 IROp opMUL = isF64 ? Iop_MulF64 : Iop_MulF32;
13394 const IROp ops[8]
13443 IROp opMUL = isF64 ? Iop_MulF64 : Iop_MulF32;
13445 const IROp ops[8]
13544 const IROp iops[8]
13547 IROp iop = iops[ix];
13627 const IROp ops[8]
13894 // Invalidate the current insn. The reason is that the IRop we're