LLVM  13.0.0git
Functions | Variables
lib/Target/PowerPC/README_P9.txt File Reference

Functions

Decimal Convert From to National Zoned Signed int_ppc_altivec_bcdcfno int_ppc_altivec_bcdcfzo int_ppc_altivec_bcdctno int_ppc_altivec_bcdctzo int_ppc_altivec_bcdcfsqo int_ppc_altivec_bcdctsqo int_ppc_altivec_bcdcpsgno int_ppc_altivec_bcdsetsgno int_ppc_altivec_bcdso int_ppc_altivec_bcduso int_ppc_altivec_bcdsro i e VA byte[7] Decimal(Unsigned) Truncate Define DAG Node in PPCInstrInfo def def def def DAG patterns of each instruction (PPCInstrVSX.td)
 
Round to Odd of QP (Negative) Multiply-
 
It looks like we only need to define PPCfmarto for these because according to these instructions perform RTO on fma s src2 rnd ← bfp_ROUND_TO_BFP128 (RO, FPSCR.RN, v) resultbfp_CONVERT_TO_BFP128(rnd) xsmsubqp(o) v ← bfp_MULTIPLY_ADD(src1
 
It looks like we only need to define PPCfmarto for these because according to these instructions perform RTO on fma s src2 rnd ← bfp_NEGATE (src2)) rnd ← bfp_ROUND_TO_BFP128(RO
 
It looks like we only need to define PPCfmarto for these because according to these instructions perform RTO on fma s src2 rnd ← FPSCR v result ← bfp_CONVERT_TO_BFP128 (rnd) xsnmaddqp(o) v ← bfp_MULTIPLY_ADD(src1
 
It looks like we only need to define PPCfmarto for these because according to these instructions perform RTO on fma s src2 rnd ← FPSCR v result ← src2 rnd ← bfp_NEGATE (bfp_ROUND_TO_BFP128(RO, FPSCR.RN, v)) resultbfp_CONVERT_TO_BFP128(rnd) xsnmsubqp(o) v ← bfp_MULTIPLY_ADD(src1
 

Variables

TODO __pad4__
 
TODO use VCMP VCMPo form(support intrinsic) - Vector Extract Unsigned vpermr
 
TODO use VCMP VCMPo form(support intrinsic) - Vector Extract Unsigned int_ppc_altivec_vpermr
 
TODO use VCMP VCMPo form(support intrinsic) - Vector Extract Unsigned v16i8
 
Vector Rotate Left Mask Mask Insert
 
Vector Rotate Left Mask Mask vrlwnm
 
Vector Rotate Left Mask Mask int_ppc_altivec_vrlwnm
 
Vector Rotate Left Mask Mask v4i32
 
 VX1_Int_Ty< 133, "vrlwmi", int_ppc_altivec_vrlwmi, v4i32 >
 
 VX1_Int_Ty< 453, "vrldnm", int_ppc_altivec_vrldnm, v2i64 >
 
 VX1_Int_Ty< 197, "vrldmi", int_ppc_altivec_vrldmi, v2i64 >
 
Vector Shift Left Right
 
Vector Shift Left don t map to llvm shl and lshr
 
Vector Shift Left don t map to llvm shl and because they have different semantics
 
Vector Shift Left don t map to llvm shl and because they have different e g vslv
 
Vector Shift Left don t map to llvm shl and because they have different e g int_ppc_altivec_vslv
 
 VX1_Int_Ty< 1796, "vsrv", int_ppc_altivec_vsrv, v16i8 >
 
Vector Multiply by Write Unsigned Quadword
 
Vector Multiply by Write Unsigned vmul10uq
 
Vector Multiply by Write Unsigned int_ppc_altivec_vmul10uq
 
Vector Multiply by Write Unsigned v1i128
 
 VX1_Int_Ty< 1, "vmul10cuq", int_ppc_altivec_vmul10cuq, v1i128 >
 
Vector Multiply by Extended Write Unsigned vmul10euq
 
Vector Multiply by Extended Write Unsigned int_ppc_altivec_vmul10euq
 
 VX1_Int_Ty< 65, "vmul10ecuq", int_ppc_altivec_vmul10ecuq, v1i128 >
 
Decimal Convert From to National Zoned Signed QWord
 
Decimal Convert From to National Zoned Signed int_ppc_altivec_bcdcfno i1
 
Decimal Convert From to National Zoned Signed int_ppc_altivec_bcdcfno int_ppc_altivec_bcdcfzo int_ppc_altivec_bcdctno int_ppc_altivec_bcdctzo int_ppc_altivec_bcdcfsqo int_ppc_altivec_bcdctsqo int_ppc_altivec_bcdcpsgno int_ppc_altivec_bcdsetsgno int_ppc_altivec_bcdso int_ppc_altivec_bcduso int_ppc_altivec_bcdsro i e VA byte[7] Decimal(Unsigned) Truncate Define DAG Node in PPCInstrInfo td
 
Decimal Convert From to National Zoned Signed int_ppc_altivec_bcdcfno int_ppc_altivec_bcdcfzo int_ppc_altivec_bcdctno int_ppc_altivec_bcdctzo int_ppc_altivec_bcdcfsqo int_ppc_altivec_bcdctsqo int_ppc_altivec_bcdcpsgno int_ppc_altivec_bcdsetsgno int_ppc_altivec_bcdso int_ppc_altivec_bcduso int_ppc_altivec_bcdsro i e VA byte[7] Decimal(Unsigned) Truncate Define DAG Node in PPCInstrInfo SDTFPBinOp
 
Decimal Convert From to National Zoned Signed int_ppc_altivec_bcdcfno int_ppc_altivec_bcdcfzo int_ppc_altivec_bcdctno int_ppc_altivec_bcdctzo int_ppc_altivec_bcdcfsqo int_ppc_altivec_bcdctsqo int_ppc_altivec_bcdcpsgno int_ppc_altivec_bcdsetsgno int_ppc_altivec_bcdso int_ppc_altivec_bcduso int_ppc_altivec_bcdsro i e VA byte[7] Decimal(Unsigned) Truncate Define DAG Node in PPCInstrInfo def PPCfdivrto
 
Decimal Convert From to National Zoned Signed int_ppc_altivec_bcdcfno int_ppc_altivec_bcdcfzo int_ppc_altivec_bcdctno int_ppc_altivec_bcdctzo int_ppc_altivec_bcdcfsqo int_ppc_altivec_bcdctsqo int_ppc_altivec_bcdcpsgno int_ppc_altivec_bcdsetsgno int_ppc_altivec_bcdso int_ppc_altivec_bcduso int_ppc_altivec_bcdsro i e VA byte[7] Decimal(Unsigned) Truncate Define DAG Node in PPCInstrInfo def def PPCfmulrto
 
Decimal Convert From to National Zoned Signed int_ppc_altivec_bcdcfno int_ppc_altivec_bcdcfzo int_ppc_altivec_bcdctno int_ppc_altivec_bcdctzo int_ppc_altivec_bcdcfsqo int_ppc_altivec_bcdctsqo int_ppc_altivec_bcdcpsgno int_ppc_altivec_bcdsetsgno int_ppc_altivec_bcdso int_ppc_altivec_bcduso int_ppc_altivec_bcdsro i e VA byte[7] Decimal(Unsigned) Truncate Define DAG Node in PPCInstrInfo def def def PPCfsubrto
 
Decimal Convert From to National Zoned Signed int_ppc_altivec_bcdcfno int_ppc_altivec_bcdcfzo int_ppc_altivec_bcdctno int_ppc_altivec_bcdctzo int_ppc_altivec_bcdcfsqo int_ppc_altivec_bcdctsqo int_ppc_altivec_bcdcpsgno int_ppc_altivec_bcdsetsgno int_ppc_altivec_bcdso int_ppc_altivec_bcduso int_ppc_altivec_bcdsro i e VA byte[7] Decimal(Unsigned) Truncate Define DAG Node in PPCInstrInfo def def def def PPCfsqrtrto
 
Decimal Convert From to National Zoned Signed int_ppc_altivec_bcdcfno int_ppc_altivec_bcdcfzo int_ppc_altivec_bcdctno int_ppc_altivec_bcdctzo int_ppc_altivec_bcdcfsqo int_ppc_altivec_bcdctsqo int_ppc_altivec_bcdcpsgno int_ppc_altivec_bcdsetsgno int_ppc_altivec_bcdso int_ppc_altivec_bcduso int_ppc_altivec_bcdsro i e VA byte[7] Decimal(Unsigned) Truncate Define DAG Node in PPCInstrInfo def def def def SDTFPUnaryOp
 
 __pad5__
 
fma f128
 
fma RegConstraint<"$vTi = $vT">
 
fma NoEncode<"$vTi">
 
fma AltVSXFMARel
 
 __pad6__
 
 SDTFPTernaryOp
 
It looks like we only need to define PPCfmarto for these instructions
 
It looks like we only need to define PPCfmarto for these because according to PowerISA_V3
 
It looks like we only need to define PPCfmarto for these because according to these instructions perform RTO on fma s result
 
It looks like we only need to define PPCfmarto for these because according to these instructions perform RTO on fma s src3
 
It looks like we only need to define PPCfmarto for these because according to these instructions perform RTO on fma s src2 rnd ← FPSCR RN
 
It looks like we only need to define PPCfmarto for these because according to these instructions perform RTO on fma s src2 rnd ← FPSCR v result ← src2 rnd ← FPSCR v result ← bfp_CONVERT_TO_BFP128 (rnd) DAG patterns of each instruction(PPCInstrVSX.td)[(set f128:$vT,(PPCfmarto f128:$vA, f128:$vB,(fneg f128:$vTi)))]
 
QP Compare Ordered Unordered
 
QP Compare Ordered outs crrc
 
QP Compare Ordered outs ins vsfrc
 
QP Compare Ordered outs ins xscmpudp $crD
 
QP Compare Ordered outs ins xscmpudp $XA
 
QP Compare Ordered outs ins xscmpudp $XB
 
QP Compare Ordered outs ins xscmpudp IIC_FPCompare
 
QP Compare Ordered outs ins xscmpudp No SDAG
 
QP Compare Ordered outs ins xscmpudp No intrinsic
 
QP Compare Ordered outs ins xscmpudp No builtin are required Or llvm fcmp order unorder compare DP QP Compare Exponents
 
QP Compare Ordered outs ins xscmpudp No builtin are required Or llvm fcmp order unorder compare DP QP Compare builtin are required DP Compare ==
 
QP Compare Ordered outs ins xscmpudp No builtin are required Or llvm fcmp order unorder compare DP QP Compare builtin are required DP xscmp *dp write to VSX register Use instrinsic
 
QP Compare Ordered outs ins xscmpudp No builtin are required Or llvm fcmp order unorder compare DP QP Compare builtin are required DP xscmp *dp write to VSX register Use int_ppc_vsx_xscmpeqdp f64
 
QP Compare Ordered outs ins xscmpudp No builtin are required Or llvm fcmp order unorder compare DP QP Compare builtin are required DP xscmp *dp write to VSX register Use int_ppc_vsx_xscmpeqdp int_ppc_vsx_xscmpgedp int_ppc_vsx_xscmpgtdp int_ppc_vsx_xscmpnedp xvcmpeqdp
 
QP Compare Ordered outs ins xscmpudp No builtin are required Or llvm fcmp order unorder compare DP QP Compare builtin are required DP xscmp *dp write to VSX register Use int_ppc_vsx_xscmpeqdp int_ppc_vsx_xscmpgedp int_ppc_vsx_xscmpgtdp int_ppc_vsx_xscmpnedp $XT
 
QP Compare Ordered outs ins xscmpudp No builtin are required Or llvm fcmp order unorder compare DP QP Compare builtin are required DP xscmp *dp write to VSX register Use int_ppc_vsx_xscmpeqdp int_ppc_vsx_xscmpgedp int_ppc_vsx_xscmpgtdp int_ppc_vsx_xscmpnedp IIC_VecFPCompare
 
QP Compare Ordered outs ins xscmpudp No builtin are required Or llvm fcmp order unorder compare DP QP Compare builtin are required DP xscmp *dp write to VSX register Use int_ppc_vsx_xscmpeqdp int_ppc_vsx_xscmpgedp int_ppc_vsx_xscmpgtdp int_ppc_vsx_xscmpnedp int_ppc_vsx_xvcmpeqdp
 
QP Compare Ordered outs ins xscmpudp No builtin are required Or llvm fcmp order unorder compare DP QP Compare builtin are required DP xscmp *dp write to VSX register Use int_ppc_vsx_xscmpeqdp int_ppc_vsx_xscmpgedp int_ppc_vsx_xscmpgtdp int_ppc_vsx_xscmpnedp v2i64
 
QP Compare Ordered outs ins xscmpudp No builtin are required Or llvm fcmp order unorder compare DP QP Compare builtin are required DP xscmp *dp write to VSX register Use int_ppc_vsx_xscmpeqdp int_ppc_vsx_xscmpgedp int_ppc_vsx_xscmpgtdp int_ppc_vsx_xscmpnedp v2f64
 
So we should use XX3Form_Rcr to implement instrinsic Convert DP QP
 
So we should use XX3Form_Rcr to implement instrinsic Convert DP outs ins xscvdpsp IIC_VecFP
 
So we should use XX3Form_Rcr to implement instrinsic Convert DP outs ins xscvdpsp So
 
So we should use XX3Form_Rcr to implement instrinsic Convert DP outs ins xscvdpsp No builtin are required Round &Convert QP DP(dword[1] is set to zero) No builtin are required Round to Quad Precision Integer
 
So we should use XX3Form_Rcr to implement instrinsic Convert DP outs ins xscvdpsp No builtin are required Round &Convert QP DP(dword[1] is set to zero) No builtin are required Round to Quad Precision XSRDPIC
 
So we should use XX3Form_Rcr to implement instrinsic Convert DP outs ins xscvdpsp No builtin are required Round &Convert QP DP(dword[1] is set to zero) No builtin are required Round to Quad Precision XSRDPIM
 
So we should use XX3Form_Rcr to implement instrinsic Convert DP outs ins xscvdpsp No builtin are required Round &Convert QP DP(dword[1] is set to zero) No builtin are required Round to Quad Precision because you need to assign rounding mode in instruction Provide builtin(set f128:$vT,(int_ppc_vsx_xsrqpi f128:$vB))(set f128 yields< n x< ty > >< result > yields< ty >< result > No builtin are required Load Store Vector
 
So we should use XX3Form_Rcr to implement instrinsic Convert DP outs ins xscvdpsp No builtin are required Round &Convert QP DP(dword[1] is set to zero) No builtin are required Round to Quad Precision because you need to assign rounding mode in instruction Provide builtin(set f128:$vT,(int_ppc_vsx_xsrqpi f128:$vB))(set f128 yields< n x< ty > >< result > yields< ty >< result > No builtin are required Load Store load ix16addr
 
So we should use XX3Form_Rcr to implement instrinsic Convert DP outs ins xscvdpsp No builtin are required Round &Convert QP DP(dword[1] is set to zero) No builtin are required Round to Quad Precision because you need to assign rounding mode in instruction Provide builtin(set f128:$vT,(int_ppc_vsx_xsrqpi f128:$vB))(set f128 yields< n x< ty > >< result > yields< ty >< result > No builtin are required Load Store load store see def memrix16 in PPCInstrInfo td Load Store Vector Indexed
 
So we should use XX3Form_Rcr to implement instrinsic Convert DP outs ins xscvdpsp No builtin are required Round &Convert QP DP(dword[1] is set to zero) No builtin are required Round to Quad Precision because you need to assign rounding mode in instruction Provide builtin(set f128:$vT,(int_ppc_vsx_xsrqpi f128:$vB))(set f128 yields< n x< ty > >< result > yields< ty >< result > No builtin are required Load Store load store see def memrix16 in PPCInstrInfo td Load Store Vector load xoaddr
 
So we should use XX3Form_Rcr to implement instrinsic Convert DP outs ins xscvdpsp No builtin are required Round &Convert QP DP(dword[1] is set to zero) No builtin are required Round to Quad Precision because you need to assign rounding mode in instruction Provide builtin(set f128:$vT,(int_ppc_vsx_xsrqpi f128:$vB))(set f128 yields< n x< ty > >< result > yields< ty >< result > No builtin are required Load Store load store see def memrix16 in PPCInstrInfo td Load Store Vector load store outs ins memrr
 
So we should use XX3Form_Rcr to implement instrinsic Convert DP outs ins xscvdpsp No builtin are required Round &Convert QP DP(dword[1] is set to zero) No builtin are required Round to Quad Precision because you need to assign rounding mode in instruction Provide builtin(set f128:$vT,(int_ppc_vsx_xsrqpi f128:$vB))(set f128 yields< n x< ty > >< result > yields< ty >< result > No builtin are required Load Store load store see def memrix16 in PPCInstrInfo td Load Store Vector load store outs ins lxsdx $src
 
So we should use XX3Form_Rcr to implement instrinsic Convert DP outs ins xscvdpsp No builtin are required Round &Convert QP DP(dword[1] is set to zero) No builtin are required Round to Quad Precision because you need to assign rounding mode in instruction Provide builtin(set f128:$vT,(int_ppc_vsx_xsrqpi f128:$vB))(set f128 yields< n x< ty > >< result > yields< ty >< result > No builtin are required Load Store load store see def memrix16 in PPCInstrInfo td Load Store Vector load store outs ins lxsdx IIC_LdStLFD
 
So we should use XX3Form_Rcr to implement instrinsic Convert DP outs ins xscvdpsp No builtin are required Round &Convert QP DP(dword[1] is set to zero) No builtin are required Round to Quad Precision because you need to assign rounding mode in instruction Provide builtin(set f128:$vT,(int_ppc_vsx_xsrqpi f128:$vB))(set f128 yields< n x< ty > >< result > yields< ty >< result > No builtin are required Load Store load store see def memrix16 in PPCInstrInfo td Load Store Vector load store outs ins lxsdx set load iaddrX4
 
So we should use XX3Form_Rcr to implement instrinsic Convert DP outs ins xscvdpsp No builtin are required Round &Convert QP DP(dword[1] is set to zero) No builtin are required Round to Quad Precision because you need to assign rounding mode in instruction Provide builtin(set f128:$vT,(int_ppc_vsx_xsrqpi f128:$vB))(set f128 yields< n x< ty > >< result > yields< ty >< result > No builtin are required Load Store load store see def memrix16 in PPCInstrInfo td Load Store Vector load store outs ins lxsdx set load store with conversion from to DP
 
So we should use XX3Form_Rcr to implement instrinsic Convert DP outs ins xscvdpsp No builtin are required Round &Convert QP DP(dword[1] is set to zero) No builtin are required Round to Quad Precision because you need to assign rounding mode in instruction Provide builtin(set f128:$vT,(int_ppc_vsx_xsrqpi f128:$vB))(set f128 yields< n x< ty > >< result > yields< ty >< result > No builtin are required Load Store load store see def memrix16 in PPCInstrInfo td Load Store Vector load store outs ins lxsdx set load store with conversion from to outs vssrc
 
So we should use XX3Form_Rcr to implement instrinsic Convert DP outs ins xscvdpsp No builtin are required Round &Convert QP DP(dword[1] is set to zero) No builtin are required Round to Quad Precision because you need to assign rounding mode in instruction Provide builtin(set f128:$vT,(int_ppc_vsx_xsrqpi f128:$vB))(set f128 yields< n x< ty > >< result > yields< ty >< result > No builtin are required Load Store load store see def memrix16 in PPCInstrInfo td Load Store Vector load store outs ins lxsdx set load store with conversion from to outs ins lxsspx set f32
 
So we should use XX3Form_Rcr to implement instrinsic Convert DP outs ins xscvdpsp No builtin are required Round &Convert QP DP(dword[1] is set to zero) No builtin are required Round to Quad Precision because you need to assign rounding mode in instruction Provide builtin(set f128:$vT,(int_ppc_vsx_xsrqpi f128:$vB))(set f128 yields< n x< ty > >< result > yields< ty >< result > No builtin are required Load Store load store see def memrix16 in PPCInstrInfo td Load Store Vector load store outs ins lxsdx set load store with conversion from to outs ins lxsspx set load store outs ins lxsiwzx set PPClfiwzx outs
 This returns a reference to a raw_fd_ostream for standard output. More...
 
So we should use XX3Form_Rcr to implement instrinsic Convert DP outs ins xscvdpsp No builtin are required Round &Convert QP DP(dword[1] is set to zero) No builtin are required Round to Quad Precision because you need to assign rounding mode in instruction Provide builtin(set f128:$vT,(int_ppc_vsx_xsrqpi f128:$vB))(set f128 yields< n x< ty > >< result > yields< ty >< result > No builtin are required Load Store load store see def memrix16 in PPCInstrInfo td Load Store Vector load store outs ins lxsdx set load store with conversion from to outs ins lxsspx set load store outs ins lxsiwzx set PPClfiwzx ins stxsiwx $dst
 
So we should use XX3Form_Rcr to implement instrinsic Convert DP outs ins xscvdpsp No builtin are required Round &Convert QP DP(dword[1] is set to zero) No builtin are required Round to Quad Precision because you need to assign rounding mode in instruction Provide builtin(set f128:$vT,(int_ppc_vsx_xsrqpi f128:$vB))(set f128 yields< n x< ty > >< result > yields< ty >< result > No builtin are required Load Store load store see def memrix16 in PPCInstrInfo td Load Store Vector load store outs ins lxsdx set load store with conversion from to outs ins lxsspx set load store outs ins lxsiwzx set PPClfiwzx ins stxsiwx IIC_LdStSTFD
 
So we should use XX3Form_Rcr to implement instrinsic Convert DP outs ins xscvdpsp No builtin are required Round &Convert QP DP(dword[1] is set to zero) No builtin are required Round to Quad Precision because you need to assign rounding mode in instruction Provide builtin(set f128:$vT,(int_ppc_vsx_xsrqpi f128:$vB))(set f128 yields< n x< ty > >< result > yields< ty >< result > No builtin are required Load Store load store see def memrix16 in PPCInstrInfo td Load Store Vector load store outs ins lxsdx set load store with conversion from to outs ins lxsspx set load store outs ins lxsiwzx set PPClfiwzx ins stxsiwx PPCstfiwx outs vsrc
 
So we should use XX3Form_Rcr to implement instrinsic Convert DP outs ins xscvdpsp No builtin are required Round &Convert QP DP(dword[1] is set to zero) No builtin are required Round to Quad Precision because you need to assign rounding mode in instruction Provide builtin(set f128:$vT,(int_ppc_vsx_xsrqpi f128:$vB))(set f128 yields< n x< ty > >< result > yields< ty >< result > No builtin are required Load Store load store see def memrix16 in PPCInstrInfo td Load Store Vector load store outs ins lxsdx set load store with conversion from to outs ins lxsspx set load store outs ins lxsiwzx set PPClfiwzx ins stxsiwx PPCstfiwx outs ins lxvd2x set v8i16
 
So we should use XX3Form_Rcr to implement instrinsic Convert DP outs ins xscvdpsp No builtin are required Round &Convert QP DP(dword[1] is set to zero) No builtin are required Round to Quad Precision because you need to assign rounding mode in instruction Provide builtin(set f128:$vT,(int_ppc_vsx_xsrqpi f128:$vB))(set f128 yields< n x< ty > >< result > yields< ty >< result > No builtin are required Load Store load store see def memrix16 in PPCInstrInfo td Load Store Vector load store outs ins lxsdx set load store with conversion from to outs ins lxsspx set load store outs ins lxsiwzx set PPClfiwzx ins stxsiwx PPCstfiwx outs ins lxvd2x set int_ppc_vsx_lxvh8x int_ppc_vsx_lxvb16x ins stxvd2x store int_ppc_vsx_lxvl int_ppc_vsx_lxvll int_ppc_vsx_lxvwsx st[dw] at
 

Function Documentation

◆ bfp_CONVERT_TO_BFP128()

It looks like we only need to define PPCfmarto for these because according to these instructions perform RTO on fma s src2 rnd ← FPSCR v result ← bfp_CONVERT_TO_BFP128 ( rnd  )

◆ bfp_NEGATE() [1/2]

It looks like we only need to define PPCfmarto for these because according to these instructions perform RTO on fma s src2 rnd ← FPSCR v result ← src2 rnd ← bfp_NEGATE ( bfp_ROUND_TO_BFP128(RO, FPSCR.RN, v)  )

◆ bfp_NEGATE() [2/2]

It looks like we only need to define PPCfmarto for these because according to these instructions perform RTO on fma s src2 rnd ← FPSCR v result ← src2 rnd ← bfp_NEGATE ( src2  )

◆ bfp_ROUND_TO_BFP128()

It looks like we only need to define PPCfmarto for these because according to these instructions perform RTO on fma s src2 rnd ← bfp_ROUND_TO_BFP128 ( RO  ,
FPSCR.  RN,
 
)

◆ instruction()

Decimal Convert From to National Zoned Signed int_ppc_altivec_bcdcfno int_ppc_altivec_bcdcfzo int_ppc_altivec_bcdctno int_ppc_altivec_bcdctzo int_ppc_altivec_bcdcfsqo int_ppc_altivec_bcdctsqo int_ppc_altivec_bcdcpsgno int_ppc_altivec_bcdsetsgno int_ppc_altivec_bcdso int_ppc_altivec_bcduso int_ppc_altivec_bcdsro i e VA byte [7] Decimal (Unsigned) Truncate Define DAG Node in PPCInstrInfo def def def def DAG patterns of each instruction ( PPCInstrVSX.  td)

Definition at line 211 of file README_P9.txt.

References llvm::MCID::Add.

◆ QP()

Round to Odd of QP ( Negative  )

Definition at line 245 of file README_P9.txt.

References llvm::MCID::Add.

Variable Documentation

◆ $crD

QP Compare Ordered outs ins xscmpudp $crD

Definition at line 301 of file README_P9.txt.

◆ $dst

So we should use XX3Form_Rcr to implement instrinsic Convert DP outs ins xscvdpsp No builtin are required Round& Convert QP DP (dword[1] is set to zero) No builtin are required Round to Quad Precision because you need to assign rounding mode in instruction Provide builtin (set f128:$vT, (int_ppc_vsx_xsrqpi f128:$vB)) (set f128 yields<n x <ty> ><result> yields<ty><result> No builtin are required Load Store load store see def memrix16 in PPCInstrInfo td Load Store Vector load store outs ins lxsdx set load store with conversion from to outs ins lxsspx set load store outs ins lxsiwzx set PPClfiwzx ins stxsiwx PPCstfiwx outs ins lxvd2x set int_ppc_vsx_lxvh8x int_ppc_vsx_lxvb16x ins stxvd2x $dst

Definition at line 538 of file README_P9.txt.

◆ $src

So we should use XX3Form_Rcr to implement instrinsic Convert DP outs ins xscvdpsp No builtin are required Round& Convert QP DP (dword[1] is set to zero) No builtin are required Round to Quad Precision because you need to assign rounding mode in instruction Provide builtin (set f128:$vT, (int_ppc_vsx_xsrqpi f128:$vB)) (set f128 yields<n x <ty> ><result> yields<ty><result> No builtin are required Load Store load store see def memrix16 in PPCInstrInfo td Load Store Vector load store outs ins lxsdx set load store with conversion from to outs ins lxsspx set load store outs ins lxsiwzx set PPClfiwzx ins stxsiwx PPCstfiwx outs ins lxvd2x $src

Definition at line 512 of file README_P9.txt.

◆ $XA

QP Compare Ordered outs ins xscmpudp No builtin are required Or llvm fcmp order unorder compare DP QP Compare builtin are required DP xscmp *dp write to VSX register Use int_ppc_vsx_xscmpeqdp int_ppc_vsx_xscmpgedp int_ppc_vsx_xscmpgtdp int_ppc_vsx_xscmpnedp $XA

Definition at line 301 of file README_P9.txt.

◆ $XB

So we should use XX3Form_Rcr to implement instrinsic Convert DP outs ins xscvdpsp $XB

Definition at line 301 of file README_P9.txt.

◆ $XT

So we should use XX3Form_Rcr to implement instrinsic Convert DP outs ins xscvdpsp $XT

Definition at line 322 of file README_P9.txt.

◆ __pad4__

TODO __pad4__

Definition at line 9 of file README_P9.txt.

◆ __pad5__

__pad5__

Definition at line 226 of file README_P9.txt.

◆ __pad6__

__pad6__

Definition at line 250 of file README_P9.txt.

◆ AltVSXFMARel

It looks like we only need to define PPCfmarto for these because according to these instructions perform RTO on fma s src2 rnd ← FPSCR v result ← src2 rnd ← FPSCR v result ← AltVSXFMARel

Definition at line 228 of file README_P9.txt.

◆ at

So we should use XX3Form_Rcr to implement instrinsic Convert DP outs ins xscvdpsp No builtin are required Round& Convert QP DP (dword[1] is set to zero) No builtin are required Round to Quad Precision because you need to assign rounding mode in instruction Provide builtin (set f128:$vT, (int_ppc_vsx_xsrqpi f128:$vB)) (set f128 yields<n x <ty> ><result> yields<ty><result> No builtin are required Load Store load store see def memrix16 in PPCInstrInfo td Load Store Vector load store outs ins lxsdx set load store with conversion from to outs ins lxsspx set load store outs ins lxsiwzx set PPClfiwzx ins stxsiwx PPCstfiwx outs ins lxvd2x set int_ppc_vsx_lxvh8x int_ppc_vsx_lxvb16x ins stxvd2x store int_ppc_vsx_lxvl int_ppc_vsx_lxvll int_ppc_vsx_lxvwsx st [dw] at

Definition at line 578 of file README_P9.txt.

◆ bfp_CONVERT_TO_BFP128

It looks like we only need to define PPCfmarto for these because according to these instructions perform RTO on fma s src2 rnd ← FPSCR v result ← src2 rnd ← FPSCR v result ← bfp_CONVERT_TO_BFP128(rnd) DAG patterns of each instruction(PPCInstrVSX.td)[(set f128:$vT,(PPCfmarto f128:$vA, f128:$vB,(fneg f128:$vTi)))]

Definition at line 273 of file README_P9.txt.

◆ Compare

QP Compare Ordered outs ins xscmpudp No builtin are required Or llvm fcmp order unorder compare DP QP Compare builtin are required DP Compare ==

◆ crrc

QP Compare Ordered outs crrc

Definition at line 299 of file README_P9.txt.

◆ DP

So we should use XX3Form_Rcr to implement instrinsic Convert DP outs ins xscvdpsp No builtin are required Round &Convert QP DP

◆ Exponents

QP Compare Ordered outs ins xscmpudp No builtin are required Or llvm fcmp order unorder compare DP QP Compare Exponents

Definition at line 307 of file README_P9.txt.

◆ f128

fma f128

Definition at line 226 of file README_P9.txt.

◆ f32

So we should use XX3Form_Rcr to implement instrinsic Convert DP outs ins xscvdpsp No builtin are required Round& Convert QP DP (dword[1] is set to zero) No builtin are required Round to Quad Precision because you need to assign rounding mode in instruction Provide builtin (set f128:$vT, (int_ppc_vsx_xsrqpi f128:$vB)) (set f128 yields<n x <ty> ><result> yields<ty><result> No builtin are required Load Store load store see def memrix16 in PPCInstrInfo td Load Store Vector load store outs ins lxsdx set load store with conversion from to outs ins lxsspx set f32

Definition at line 522 of file README_P9.txt.

◆ f64

QP Compare Ordered outs ins xscmpudp No builtin are required Or llvm fcmp order unorder compare DP QP Compare builtin are required DP xscmp *dp write to VSX register Use int_ppc_vsx_xscmpeqdp int_ppc_vsx_xscmpgedp int_ppc_vsx_xscmpgtdp int_ppc_vsx_xscmpnedp f64

Definition at line 314 of file README_P9.txt.

◆ i1

Decimal Convert From to National Zoned Signed int_ppc_altivec_bcdcfno int_ppc_altivec_bcdcfzo int_ppc_altivec_bcdctno int_ppc_altivec_bcdctzo int_ppc_altivec_bcdcfsqo int_ppc_altivec_bcdctsqo int_ppc_altivec_bcdcpsgno int_ppc_altivec_bcdsetsgno int_ppc_altivec_bcdso int_ppc_altivec_bcduso int_ppc_altivec_bcdsro i1

Definition at line 147 of file README_P9.txt.

Referenced by abort_gzip(), foo(), and ValuesOverlap().

◆ iaddrX4

So we should use XX3Form_Rcr to implement instrinsic Convert DP outs ins xscvdpsp No builtin are required Round& Convert QP DP (dword[1] is set to zero) No builtin are required Round to Quad Precision because you need to assign rounding mode in instruction Provide builtin (set f128:$vT, (int_ppc_vsx_xsrqpi f128:$vB)) (set f128 yields<n x <ty> ><result> yields<ty><result> No builtin are required Load Store load store see def memrix16 in PPCInstrInfo td Load Store Vector load store outs ins lxsdx set load store with conversion from to outs ins lxsspx set load store iaddrX4

Definition at line 516 of file README_P9.txt.

◆ IIC_FPCompare

QP Compare Ordered outs ins xscmpudp IIC_FPCompare

Definition at line 301 of file README_P9.txt.

◆ IIC_LdStLFD

So we should use XX3Form_Rcr to implement instrinsic Convert DP outs ins xscvdpsp No builtin are required Round& Convert QP DP (dword[1] is set to zero) No builtin are required Round to Quad Precision because you need to assign rounding mode in instruction Provide builtin (set f128:$vT, (int_ppc_vsx_xsrqpi f128:$vB)) (set f128 yields<n x <ty> ><result> yields<ty><result> No builtin are required Load Store load store see def memrix16 in PPCInstrInfo td Load Store Vector load store outs ins lxsdx set load store with conversion from to outs ins lxsspx set load store outs ins lxsiwzx set PPClfiwzx ins stxsiwx PPCstfiwx outs ins lxvd2x IIC_LdStLFD

Definition at line 512 of file README_P9.txt.

◆ IIC_LdStSTFD

So we should use XX3Form_Rcr to implement instrinsic Convert DP outs ins xscvdpsp No builtin are required Round& Convert QP DP (dword[1] is set to zero) No builtin are required Round to Quad Precision because you need to assign rounding mode in instruction Provide builtin (set f128:$vT, (int_ppc_vsx_xsrqpi f128:$vB)) (set f128 yields<n x <ty> ><result> yields<ty><result> No builtin are required Load Store load store see def memrix16 in PPCInstrInfo td Load Store Vector load store outs ins lxsdx set load store with conversion from to outs ins lxsspx set load store outs ins lxsiwzx set PPClfiwzx ins stxsiwx PPCstfiwx outs ins lxvd2x set int_ppc_vsx_lxvh8x int_ppc_vsx_lxvb16x ins stxvd2x IIC_LdStSTFD

Definition at line 538 of file README_P9.txt.

◆ IIC_VecFP

So we should use XX3Form_Rcr to implement instrinsic Convert DP outs ins xscvdpsp IIC_VecFP

Definition at line 331 of file README_P9.txt.

◆ IIC_VecFPCompare

QP Compare Ordered outs ins xscmpudp No builtin are required Or llvm fcmp order unorder compare DP QP Compare builtin are required DP xscmp* dp write to VSX register Use int_ppc_vsx_xscmpeqdp int_ppc_vsx_xscmpgedp int_ppc_vsx_xscmpgtdp int_ppc_vsx_xscmpnedp IIC_VecFPCompare

Definition at line 322 of file README_P9.txt.

◆ Indexed

So we should use XX3Form_Rcr to implement instrinsic Convert DP outs ins xscvdpsp No builtin are required Round& Convert QP DP (dword[1] is set to zero) No builtin are required Round to Quad Precision because you need to assign rounding mode in instruction Provide builtin (set f128:$vT, (int_ppc_vsx_xsrqpi f128:$vB)) (set f128 yields<n x <ty> ><result> yields<ty><result> No builtin are required Load Store load store see def memrix16 in PPCInstrInfo td Load Store Vector Indexed

◆ Insert

Vector Rotate Left Mask Mask Insert

◆ instrinsic

QP Compare Ordered outs ins xscmpudp No builtin are required Or llvm fcmp order unorder compare DP QP Compare builtin are required DP xscmp* dp write to VSX register Use instrinsic

Definition at line 309 of file README_P9.txt.

◆ instructions

It looks like we only need to define PPCfmarto for these instructions

Definition at line 250 of file README_P9.txt.

◆ int_ppc_altivec_vmul10euq

Vector Multiply by Extended Write Unsigned int_ppc_altivec_vmul10euq

Definition at line 140 of file README_P9.txt.

◆ int_ppc_altivec_vmul10uq

Vector Multiply by Write Unsigned int_ppc_altivec_vmul10uq

Definition at line 134 of file README_P9.txt.

◆ int_ppc_altivec_vpermr

TODO use VCMP VCMPo form (support intrinsic) - Vector Extract Unsigned int_ppc_altivec_vpermr

Definition at line 108 of file README_P9.txt.

◆ int_ppc_altivec_vrlwnm

Vector Rotate Left Mask Mask int_ppc_altivec_vrlwnm

Definition at line 112 of file README_P9.txt.

◆ int_ppc_altivec_vslv

Vector Shift Left don t map to llvm shl and because they have different e g int_ppc_altivec_vslv

Definition at line 128 of file README_P9.txt.

◆ int_ppc_vsx_xvcmpeqdp

QP Compare Ordered outs ins xscmpudp No builtin are required Or llvm fcmp order unorder compare DP QP Compare builtin are required DP xscmp* dp write to VSX register Use int_ppc_vsx_xscmpeqdp int_ppc_vsx_xscmpgedp int_ppc_vsx_xscmpgtdp int_ppc_vsx_xscmpnedp int_ppc_vsx_xvcmpeqdp

Definition at line 323 of file README_P9.txt.

◆ Integer

So we should use XX3Form_Rcr to implement instrinsic Convert DP outs ins xscvdpsp No builtin are required Round& Convert QP DP (dword[1] is set to zero) No builtin are required Round to Quad Precision Integer

◆ intrinsic

So we should use XX3Form_Rcr to implement instrinsic Convert DP outs ins xscvdpsp No intrinsic

Definition at line 303 of file README_P9.txt.

Referenced by llvm::pdb::DIARawSymbol::dump().

◆ ix16addr

So we should use XX3Form_Rcr to implement instrinsic Convert DP outs ins xscvdpsp No builtin are required Round& Convert QP DP (dword[1] is set to zero) No builtin are required Round to Quad Precision because you need to assign rounding mode in instruction Provide builtin (set f128:$vT, (int_ppc_vsx_xsrqpi f128:$vB)) (set f128 yields<n x <ty> ><result> yields<ty><result> No builtin are required Load Store load store ix16addr

Definition at line 498 of file README_P9.txt.

◆ lshr

Vector Shift Left don t map to llvm shl and lshr

◆ memrr

So we should use XX3Form_Rcr to implement instrinsic Convert DP outs ins xscvdpsp No builtin are required Round& Convert QP DP (dword[1] is set to zero) No builtin are required Round to Quad Precision because you need to assign rounding mode in instruction Provide builtin (set f128:$vT, (int_ppc_vsx_xsrqpi f128:$vB)) (set f128 yields<n x <ty> ><result> yields<ty><result> No builtin are required Load Store load store see def memrix16 in PPCInstrInfo td Load Store Vector load store outs ins lxsdx set load store with conversion from to outs ins lxsspx set load store outs ins lxsiwzx set PPClfiwzx ins stxsiwx PPCstfiwx outs ins lxvd2x set int_ppc_vsx_lxvh8x int_ppc_vsx_lxvb16x ins memrr

Definition at line 511 of file README_P9.txt.

◆ NoEncode<"$vTi">

It looks like we only need to define PPCfmarto for these because according to these instructions perform RTO on fma s src2 rnd ← FPSCR v result ← src2 rnd ← FPSCR v result ← NoEncode<"$vTi">

Definition at line 227 of file README_P9.txt.

◆ outs

So we should use XX3Form_Rcr to implement instrinsic Convert DP outs ins xscvdpsp No builtin are required Round& Convert QP DP (dword[1] is set to zero) No builtin are required Round to Quad Precision because you need to assign rounding mode in instruction Provide builtin (set f128:$vT, (int_ppc_vsx_xsrqpi f128:$vB)) (set f128 yields<n x <ty> ><result> yields<ty><result> No builtin are required Load Store load store see def memrix16 in PPCInstrInfo td Load Store Vector load store outs ins lxsdx set load store with conversion from to outs ins lxsspx set load store outs ins lxsiwzx set PPClfiwzx ins stxsiwx PPCstfiwx outs ins lxvd2x set int_ppc_vsx_lxvh8x int_ppc_vsx_lxvb16x outs

◆ PowerISA_V3

It looks like we only need to define PPCfmarto for these because according to PowerISA_V3

Definition at line 253 of file README_P9.txt.

◆ PPCfdivrto

Decimal Convert From to National Zoned Signed int_ppc_altivec_bcdcfno int_ppc_altivec_bcdcfzo int_ppc_altivec_bcdctno int_ppc_altivec_bcdctzo int_ppc_altivec_bcdcfsqo int_ppc_altivec_bcdctsqo int_ppc_altivec_bcdcpsgno int_ppc_altivec_bcdsetsgno int_ppc_altivec_bcdso int_ppc_altivec_bcduso int_ppc_altivec_bcdsro i e VA byte [7] Decimal (Unsigned) Truncate Define DAG Node in PPCInstrInfo def PPCfdivrto

Definition at line 205 of file README_P9.txt.

◆ PPCfmulrto

Decimal Convert From to National Zoned Signed int_ppc_altivec_bcdcfno int_ppc_altivec_bcdcfzo int_ppc_altivec_bcdctno int_ppc_altivec_bcdctzo int_ppc_altivec_bcdcfsqo int_ppc_altivec_bcdctsqo int_ppc_altivec_bcdcpsgno int_ppc_altivec_bcdsetsgno int_ppc_altivec_bcdso int_ppc_altivec_bcduso int_ppc_altivec_bcdsro i e VA byte [7] Decimal (Unsigned) Truncate Define DAG Node in PPCInstrInfo def def PPCfmulrto

Definition at line 206 of file README_P9.txt.

◆ PPCfsqrtrto

Decimal Convert From to National Zoned Signed int_ppc_altivec_bcdcfno int_ppc_altivec_bcdcfzo int_ppc_altivec_bcdctno int_ppc_altivec_bcdctzo int_ppc_altivec_bcdcfsqo int_ppc_altivec_bcdctsqo int_ppc_altivec_bcdcpsgno int_ppc_altivec_bcdsetsgno int_ppc_altivec_bcdso int_ppc_altivec_bcduso int_ppc_altivec_bcdsro i e VA byte [7] Decimal (Unsigned) Truncate Define DAG Node in PPCInstrInfo def def def def PPCfsqrtrto

Definition at line 208 of file README_P9.txt.

◆ PPCfsubrto

Decimal Convert From to National Zoned Signed int_ppc_altivec_bcdcfno int_ppc_altivec_bcdcfzo int_ppc_altivec_bcdctno int_ppc_altivec_bcdctzo int_ppc_altivec_bcdcfsqo int_ppc_altivec_bcdctsqo int_ppc_altivec_bcdcpsgno int_ppc_altivec_bcdsetsgno int_ppc_altivec_bcdso int_ppc_altivec_bcduso int_ppc_altivec_bcdsro i e VA byte [7] Decimal (Unsigned) Truncate Define DAG Node in PPCInstrInfo def def def PPCfsubrto

Definition at line 207 of file README_P9.txt.

◆ QP

So we should use XX3Form_Rcr to implement instrinsic Convert DP QP

Definition at line 329 of file README_P9.txt.

◆ Quadword

Vector Multiply by Extended Write Unsigned Quadword

Definition at line 131 of file README_P9.txt.

◆ QWord

Decimal Convert From to National Zoned Signed QWord

Definition at line 146 of file README_P9.txt.

◆ RegConstraint<"$vTi = $vT">

It looks like we only need to define PPCfmarto for these because according to these instructions perform RTO on fma s src2 rnd ← FPSCR v result ← src2 rnd ← FPSCR v result ← RegConstraint<"$vTi = $vT">

Definition at line 227 of file README_P9.txt.

◆ result

It looks like we only need to define PPCfmarto for these because according to these instructions perform RTO on fma s result

◆ Right

Vector Shift Left Right

◆ RN

It looks like we only need to define PPCfmarto for these because according to these instructions perform RTO on fma s src2 rnd ← FPSCR v result ← src2 rnd ← FPSCR RN

◆ SDAG

So we should use XX3Form_Rcr to implement instrinsic Convert DP outs ins xscvdpsp No SDAG

Definition at line 301 of file README_P9.txt.

Referenced by llvm::SelectionDAG::FlagInserter::FlagInserter().

◆ SDTFPBinOp

Decimal Convert From to National Zoned Signed int_ppc_altivec_bcdcfno int_ppc_altivec_bcdcfzo int_ppc_altivec_bcdctno int_ppc_altivec_bcdctzo int_ppc_altivec_bcdcfsqo int_ppc_altivec_bcdctsqo int_ppc_altivec_bcdcpsgno int_ppc_altivec_bcdsetsgno int_ppc_altivec_bcdso int_ppc_altivec_bcduso int_ppc_altivec_bcdsro i e VA byte [7] Decimal (Unsigned) Truncate Define DAG Node in PPCInstrInfo def def def SDTFPBinOp

Definition at line 205 of file README_P9.txt.

◆ SDTFPTernaryOp

SDTFPTernaryOp

Definition at line 250 of file README_P9.txt.

◆ SDTFPUnaryOp

Decimal Convert From to National Zoned Signed int_ppc_altivec_bcdcfno int_ppc_altivec_bcdcfzo int_ppc_altivec_bcdctno int_ppc_altivec_bcdctzo int_ppc_altivec_bcdcfsqo int_ppc_altivec_bcdctsqo int_ppc_altivec_bcdcpsgno int_ppc_altivec_bcdsetsgno int_ppc_altivec_bcdso int_ppc_altivec_bcduso int_ppc_altivec_bcdsro i e VA byte [7] Decimal (Unsigned) Truncate Define DAG Node in PPCInstrInfo def def def def SDTFPUnaryOp

Definition at line 209 of file README_P9.txt.

◆ semantics

Vector Shift Left don t map to llvm shl and because they have different semantics

◆ So

So we should use XX3Form_Rcr to implement instrinsic Convert DP outs ins xscvdpsp So

Definition at line 331 of file README_P9.txt.

◆ src3

It looks like we only need to define PPCfmarto for these because according to these instructions perform RTO on fma s src2 rnd ← FPSCR v result ← src2 rnd ← src3

Definition at line 256 of file README_P9.txt.

◆ td

Decimal Convert From to National Zoned Signed int_ppc_altivec_bcdcfno int_ppc_altivec_bcdcfzo int_ppc_altivec_bcdctno int_ppc_altivec_bcdctzo int_ppc_altivec_bcdcfsqo int_ppc_altivec_bcdctsqo int_ppc_altivec_bcdcpsgno int_ppc_altivec_bcdsetsgno int_ppc_altivec_bcdso int_ppc_altivec_bcduso int_ppc_altivec_bcdsro i e VA byte [7] Decimal (Unsigned) Truncate Define DAG Node in PPCInstrInfo td

Definition at line 166 of file README_P9.txt.

◆ Unordered

QP Compare Ordered Unordered

◆ v16i8

Vector Shift Left don t map to llvm shl and because they have different e g v16i8

Definition at line 108 of file README_P9.txt.

◆ v1i128

Decimal Convert From to National Zoned Signed int_ppc_altivec_bcdcfno int_ppc_altivec_bcdcfzo int_ppc_altivec_bcdctno int_ppc_altivec_bcdctzo int_ppc_altivec_bcdcfsqo int_ppc_altivec_bcdctsqo int_ppc_altivec_bcdcpsgno int_ppc_altivec_bcdsetsgno int_ppc_altivec_bcdso int_ppc_altivec_bcduso int_ppc_altivec_bcdsro v1i128

Definition at line 134 of file README_P9.txt.

◆ v2f64

QP Compare Ordered outs ins xscmpudp No builtin are required Or llvm fcmp order unorder compare DP QP Compare builtin are required DP xscmp* dp write to VSX register Use int_ppc_vsx_xscmpeqdp int_ppc_vsx_xscmpgedp int_ppc_vsx_xscmpgtdp int_ppc_vsx_xscmpnedp v2f64

Definition at line 323 of file README_P9.txt.

◆ v2i64

QP Compare Ordered outs ins xscmpudp No builtin are required Or llvm fcmp order unorder compare DP QP Compare builtin are required DP xscmp* dp write to VSX register Use int_ppc_vsx_xscmpeqdp int_ppc_vsx_xscmpgedp int_ppc_vsx_xscmpgtdp int_ppc_vsx_xscmpnedp v2i64

Definition at line 323 of file README_P9.txt.

◆ v4i32

Vector Rotate Left Mask Mask v4i32

Definition at line 112 of file README_P9.txt.

◆ v8i16

So we should use XX3Form_Rcr to implement instrinsic Convert DP outs ins xscvdpsp No builtin are required Round& Convert QP DP (dword[1] is set to zero) No builtin are required Round to Quad Precision because you need to assign rounding mode in instruction Provide builtin (set f128:$vT, (int_ppc_vsx_xsrqpi f128:$vB)) (set f128 yields<n x <ty> ><result> yields<ty><result> No builtin are required Load Store load store see def memrix16 in PPCInstrInfo td Load Store Vector load store outs ins lxsdx set load store with conversion from to outs ins lxsspx set load store outs ins lxsiwzx set PPClfiwzx ins stxsiwx PPCstfiwx outs ins lxvd2x set int_ppc_vsx_lxvh8x int_ppc_vsx_lxvb16x ins stxvd2x store v8i16

Definition at line 548 of file README_P9.txt.

◆ Vector

So we should use XX3Form_Rcr to implement instrinsic Convert DP outs ins xscvdpsp No builtin are required Round& Convert QP DP (dword[1] is set to zero) No builtin are required Round to Quad Precision because you need to assign rounding mode in instruction Provide builtin (set f128:$vT, (int_ppc_vsx_xsrqpi f128:$vB)) (set f128 yields<n x <ty> ><result> yields<ty><result> No builtin are required Load Store Vector

Definition at line 497 of file README_P9.txt.

Referenced by llvm::PBQP::applyR1(), llvm::PBQP::applyR2(), llvm::MapVector< AssertingVH< Instruction >, AssertingVH< Value > >::back(), llvm::BlotMapVector< KeyT, ValueT >::begin(), llvm::MapVector< AssertingVH< Instruction >, AssertingVH< Value > >::begin(), llvm::UniqueVector< std::string >::begin(), llvm::SmallSet< unsigned, 16 >::begin(), llvm::FoldingSetVector< T, VectorT >::begin(), llvm::BlotMapVector< KeyT, ValueT >::blot(), llvm::MapVector< AssertingVH< Instruction >, AssertingVH< Value > >::clear(), llvm::BlotMapVector< KeyT, ValueT >::clear(), llvm::SmallSet< unsigned, 16 >::clear(), llvm::FoldingSetVector< T, VectorT >::clear(), llvm::SmallSet< unsigned, 16 >::contains(), llvm::SmallSet< unsigned, 16 >::count(), llvm::MapVector< AssertingVH< Instruction >, AssertingVH< Value > >::empty(), llvm::UniqueVector< std::string >::empty(), llvm::BlotMapVector< KeyT, ValueT >::empty(), llvm::SmallSet< unsigned, 16 >::empty(), llvm::BlotMapVector< KeyT, ValueT >::end(), llvm::MapVector< AssertingVH< Instruction >, AssertingVH< Value > >::end(), llvm::UniqueVector< std::string >::end(), llvm::SmallSet< unsigned, 16 >::end(), llvm::FoldingSetVector< T, VectorT >::end(), llvm::MapVector< AssertingVH< Instruction >, AssertingVH< Value > >::erase(), llvm::SmallSet< unsigned, 16 >::erase(), llvm::BlotMapVector< KeyT, ValueT >::find(), llvm::MapVector< AssertingVH< Instruction >, AssertingVH< Value > >::find(), llvm::MapVector< AssertingVH< Instruction >, AssertingVH< Value > >::front(), llvm::XCoreTTIImpl::getNumberOfRegisters(), llvm::WebAssemblyTTIImpl::getNumberOfRegisters(), llvm::SystemZTTIImpl::getNumberOfRegisters(), llvm::HexagonTTIImpl::getNumberOfRegisters(), llvm::AArch64TTIImpl::getNumberOfRegisters(), llvm::X86TTIImpl::getNumberOfRegisters(), llvm::ARMTTIImpl::getNumberOfRegisters(), llvm::FoldingSetVector< T, VectorT >::GetOrInsertNode(), llvm::PPCTTIImpl::getRegisterClassForType(), llvm::TargetTransformInfoImplBase::getRegisterClassForType(), llvm::TargetTransformInfo::getRegisterClassForType(), llvm::GetElementPtrInst::getTypeAtIndex(), llvm::BlotMapVector< KeyT, ValueT >::insert(), llvm::MapVector< AssertingVH< Instruction >, AssertingVH< Value > >::insert(), llvm::SmallSet< unsigned, 16 >::insert(), llvm::FoldingSetVector< T, VectorT >::InsertNode(), instrumentMaskedLoadOrStore(), llvm::R600InstrInfo::isLegalUpTo(), llvm::MapVector< AssertingVH< Instruction >, AssertingVH< Value > >::lookup(), llvm::BlotMapVector< KeyT, ValueT >::operator[](), llvm::UniqueVector< std::string >::operator[](), llvm::MapVector< AssertingVH< Instruction >, AssertingVH< Value > >::operator[](), performPostLD1Combine(), llvm::MapVector< AssertingVH< Instruction >, AssertingVH< Value > >::pop_back(), llvm::MapVector< AssertingVH< Instruction >, AssertingVH< Value > >::rbegin(), llvm::MapVector< AssertingVH< Instruction >, AssertingVH< Value > >::remove_if(), llvm::MapVector< AssertingVH< Instruction >, AssertingVH< Value > >::rend(), llvm::MapVector< AssertingVH< Instruction >, AssertingVH< Value > >::reserve(), llvm::UniqueVector< std::string >::reset(), llvm::MapVector< AssertingVH< Instruction >, AssertingVH< Value > >::size(), llvm::UniqueVector< std::string >::size(), llvm::SmallSet< unsigned, 16 >::size(), llvm::MapVector< AssertingVH< Instruction >, AssertingVH< Value > >::swap(), llvm::MapVector< AssertingVH< Instruction >, AssertingVH< Value > >::takeVector(), and llvm::SetVector< llvm::ElementCount, SmallVector< llvm::ElementCount, N >, SmallDenseSet< llvm::ElementCount, N > >::takeVector().

◆ vmul10euq

Vector Multiply by Extended Write Unsigned vmul10euq

Definition at line 140 of file README_P9.txt.

◆ vmul10uq

Vector Multiply by Write Unsigned vmul10uq

Definition at line 134 of file README_P9.txt.

◆ vpermr

TODO use VCMP VCMPo form (support intrinsic) - Vector Extract Unsigned vpermr

Definition at line 9 of file README_P9.txt.

◆ vrlwnm

Vector Rotate Left Mask Mask vrlwnm

Definition at line 112 of file README_P9.txt.

◆ vsfrc

So we should use XX3Form_Rcr to implement instrinsic Convert DP outs ins vsfrc

Definition at line 300 of file README_P9.txt.

◆ vslv

Vector Shift Left don t map to llvm shl and because they have different e g vslv

Definition at line 128 of file README_P9.txt.

◆ vsrc

So we should use XX3Form_Rcr to implement instrinsic Convert DP outs ins xscvdpsp No builtin are required Round& Convert QP DP (dword[1] is set to zero) No builtin are required Round to Quad Precision because you need to assign rounding mode in instruction Provide builtin (set f128:$vT, (int_ppc_vsx_xsrqpi f128:$vB)) (set f128 yields<n x <ty> ><result> yields<ty><result> No builtin are required Load Store load store see def memrix16 in PPCInstrInfo td Load Store Vector load store outs ins lxsdx set load store with conversion from to outs ins lxsspx set load store outs ins lxsiwzx set PPClfiwzx ins stxsiwx PPCstfiwx outs ins lxvd2x set int_ppc_vsx_lxvh8x int_ppc_vsx_lxvb16x ins vsrc

Definition at line 545 of file README_P9.txt.

◆ vssrc

So we should use XX3Form_Rcr to implement instrinsic Convert DP outs ins xscvdpsp No builtin are required Round& Convert QP DP (dword[1] is set to zero) No builtin are required Round to Quad Precision because you need to assign rounding mode in instruction Provide builtin (set f128:$vT, (int_ppc_vsx_xsrqpi f128:$vB)) (set f128 yields<n x <ty> ><result> yields<ty><result> No builtin are required Load Store load store see def memrix16 in PPCInstrInfo td Load Store Vector load store outs ins lxsdx set load store with conversion from to outs vssrc

Definition at line 520 of file README_P9.txt.

◆ VX1_Int_Ty< 1, "vmul10cuq", int_ppc_altivec_vmul10cuq, v1i128 >

VX1_Int_Ty< 1, "vmul10cuq", int_ppc_altivec_vmul10cuq, v1i128 >

Definition at line 135 of file README_P9.txt.

◆ VX1_Int_Ty< 133, "vrlwmi", int_ppc_altivec_vrlwmi, v4i32 >

VX1_Int_Ty< 133, "vrlwmi", int_ppc_altivec_vrlwmi, v4i32 >

Definition at line 113 of file README_P9.txt.

◆ VX1_Int_Ty< 1796, "vsrv", int_ppc_altivec_vsrv, v16i8 >

VX1_Int_Ty< 1796, "vsrv", int_ppc_altivec_vsrv, v16i8 >

Definition at line 129 of file README_P9.txt.

◆ VX1_Int_Ty< 197, "vrldmi", int_ppc_altivec_vrldmi, v2i64 >

VX1_Int_Ty< 197, "vrldmi", int_ppc_altivec_vrldmi, v2i64 >

Definition at line 115 of file README_P9.txt.

◆ VX1_Int_Ty< 453, "vrldnm", int_ppc_altivec_vrldnm, v2i64 >

VX1_Int_Ty< 453, "vrldnm", int_ppc_altivec_vrldnm, v2i64 >

Definition at line 114 of file README_P9.txt.

◆ VX1_Int_Ty< 65, "vmul10ecuq", int_ppc_altivec_vmul10ecuq, v1i128 >

VX1_Int_Ty< 65, "vmul10ecuq", int_ppc_altivec_vmul10ecuq, v1i128 >

Definition at line 141 of file README_P9.txt.

◆ xoaddr

So we should use XX3Form_Rcr to implement instrinsic Convert DP outs ins xscvdpsp No builtin are required Round& Convert QP DP (dword[1] is set to zero) No builtin are required Round to Quad Precision because you need to assign rounding mode in instruction Provide builtin (set f128:$vT, (int_ppc_vsx_xsrqpi f128:$vB)) (set f128 yields<n x <ty> ><result> yields<ty><result> No builtin are required Load Store load store see def memrix16 in PPCInstrInfo td Load Store Vector load store outs ins lxsdx set load store with conversion from to outs ins lxsspx set load store outs ins lxsiwzx set PPClfiwzx ins stxsiwx PPCstfiwx outs ins lxvd2x set int_ppc_vsx_lxvh8x int_ppc_vsx_lxvb16x ins stxvd2x store int_ppc_vsx_lxvl int_ppc_vsx_lxvll int_ppc_vsx_lxvwsx xoaddr

Definition at line 506 of file README_P9.txt.

◆ XSRDPIC

So we should use XX3Form_Rcr to implement instrinsic Convert DP outs ins xscvdpsp No builtin are required Round& Convert QP DP (dword[1] is set to zero) No builtin are required Round to Quad Precision XSRDPIC

Definition at line 366 of file README_P9.txt.

◆ XSRDPIM

So we should use XX3Form_Rcr to implement instrinsic Convert DP outs ins xscvdpsp No builtin are required Round& Convert QP DP (dword[1] is set to zero) No builtin are required Round to Quad Precision XSRDPIM

Definition at line 366 of file README_P9.txt.

◆ xvcmpeqdp

QP Compare Ordered outs ins xscmpudp No builtin are required Or llvm fcmp order unorder compare DP QP Compare builtin are required DP xscmp* dp write to VSX register Use int_ppc_vsx_xscmpeqdp int_ppc_vsx_xscmpgedp int_ppc_vsx_xscmpgtdp int_ppc_vsx_xscmpnedp xvcmpeqdp

Definition at line 321 of file README_P9.txt.