diff options
Diffstat (limited to 'lib/CodeGen/CGBuiltin.cpp')
-rw-r--r-- | lib/CodeGen/CGBuiltin.cpp | 906 |
1 files changed, 751 insertions, 155 deletions
diff --git a/lib/CodeGen/CGBuiltin.cpp b/lib/CodeGen/CGBuiltin.cpp index f995614fd5..792893f54e 100644 --- a/lib/CodeGen/CGBuiltin.cpp +++ b/lib/CodeGen/CGBuiltin.cpp @@ -2464,6 +2464,18 @@ Value *CodeGenFunction::EmitHexagonBuiltinExpr(unsigned BuiltinID, switch (BuiltinID) { default: return 0; +// The builtins below are not autogenerated from iset.py. +// Make sure you do not overwrite these. + + case Hexagon::BI__builtin_SI_to_SXTHI_asrh: + ID = Intrinsic::hexagon_SI_to_SXTHI_asrh; break; + + case Hexagon::BI__builtin_circ_ldd: + ID = Intrinsic::hexagon_circ_ldd; break; + +// The builtins above are not autogenerated from iset.py. +// Make sure you do not overwrite these. + case Hexagon::BI__builtin_HEXAGON_C2_cmpeq: ID = Intrinsic::hexagon_C2_cmpeq; break; @@ -2482,12 +2494,30 @@ Value *CodeGenFunction::EmitHexagonBuiltinExpr(unsigned BuiltinID, case Hexagon::BI__builtin_HEXAGON_C2_cmpgtup: ID = Intrinsic::hexagon_C2_cmpgtup; break; + case Hexagon::BI__builtin_HEXAGON_A4_rcmpeqi: + ID = Intrinsic::hexagon_A4_rcmpeqi; break; + + case Hexagon::BI__builtin_HEXAGON_A4_rcmpneqi: + ID = Intrinsic::hexagon_A4_rcmpneqi; break; + + case Hexagon::BI__builtin_HEXAGON_A4_rcmpeq: + ID = Intrinsic::hexagon_A4_rcmpeq; break; + + case Hexagon::BI__builtin_HEXAGON_A4_rcmpneq: + ID = Intrinsic::hexagon_A4_rcmpneq; break; + case Hexagon::BI__builtin_HEXAGON_C2_bitsset: ID = Intrinsic::hexagon_C2_bitsset; break; case Hexagon::BI__builtin_HEXAGON_C2_bitsclr: ID = Intrinsic::hexagon_C2_bitsclr; break; + case Hexagon::BI__builtin_HEXAGON_C4_nbitsset: + ID = Intrinsic::hexagon_C4_nbitsset; break; + + case Hexagon::BI__builtin_HEXAGON_C4_nbitsclr: + ID = Intrinsic::hexagon_C4_nbitsclr; break; + case Hexagon::BI__builtin_HEXAGON_C2_cmpeqi: ID = Intrinsic::hexagon_C2_cmpeqi; break; @@ -2512,6 +2542,27 @@ Value *CodeGenFunction::EmitHexagonBuiltinExpr(unsigned BuiltinID, case Hexagon::BI__builtin_HEXAGON_C2_bitsclri: ID = Intrinsic::hexagon_C2_bitsclri; break; + case Hexagon::BI__builtin_HEXAGON_C4_nbitsclri: + ID = Intrinsic::hexagon_C4_nbitsclri; break; + + case Hexagon::BI__builtin_HEXAGON_C4_cmpneqi: + ID = Intrinsic::hexagon_C4_cmpneqi; break; + + case Hexagon::BI__builtin_HEXAGON_C4_cmpltei: + ID = Intrinsic::hexagon_C4_cmpltei; break; + + case Hexagon::BI__builtin_HEXAGON_C4_cmplteui: + ID = Intrinsic::hexagon_C4_cmplteui; break; + + case Hexagon::BI__builtin_HEXAGON_C4_cmpneq: + ID = Intrinsic::hexagon_C4_cmpneq; break; + + case Hexagon::BI__builtin_HEXAGON_C4_cmplte: + ID = Intrinsic::hexagon_C4_cmplte; break; + + case Hexagon::BI__builtin_HEXAGON_C4_cmplteu: + ID = Intrinsic::hexagon_C4_cmplteu; break; + case Hexagon::BI__builtin_HEXAGON_C2_and: ID = Intrinsic::hexagon_C2_and; break; @@ -2530,6 +2581,30 @@ Value *CodeGenFunction::EmitHexagonBuiltinExpr(unsigned BuiltinID, case Hexagon::BI__builtin_HEXAGON_C2_orn: ID = Intrinsic::hexagon_C2_orn; break; + case Hexagon::BI__builtin_HEXAGON_C4_and_and: + ID = Intrinsic::hexagon_C4_and_and; break; + + case Hexagon::BI__builtin_HEXAGON_C4_and_or: + ID = Intrinsic::hexagon_C4_and_or; break; + + case Hexagon::BI__builtin_HEXAGON_C4_or_and: + ID = Intrinsic::hexagon_C4_or_and; break; + + case Hexagon::BI__builtin_HEXAGON_C4_or_or: + ID = Intrinsic::hexagon_C4_or_or; break; + + case Hexagon::BI__builtin_HEXAGON_C4_and_andn: + ID = Intrinsic::hexagon_C4_and_andn; break; + + case Hexagon::BI__builtin_HEXAGON_C4_and_orn: + ID = Intrinsic::hexagon_C4_and_orn; break; + + case Hexagon::BI__builtin_HEXAGON_C4_or_andn: + ID = Intrinsic::hexagon_C4_or_andn; break; + + case Hexagon::BI__builtin_HEXAGON_C4_or_orn: + ID = Intrinsic::hexagon_C4_or_orn; break; + case Hexagon::BI__builtin_HEXAGON_C2_pxfer_map: ID = Intrinsic::hexagon_C2_pxfer_map; break; @@ -2563,9 +2638,42 @@ Value *CodeGenFunction::EmitHexagonBuiltinExpr(unsigned BuiltinID, case Hexagon::BI__builtin_HEXAGON_A2_vcmpbeq: ID = Intrinsic::hexagon_A2_vcmpbeq; break; + case Hexagon::BI__builtin_HEXAGON_A4_vcmpbeqi: + ID = Intrinsic::hexagon_A4_vcmpbeqi; break; + + case Hexagon::BI__builtin_HEXAGON_A4_vcmpbeq_any: + ID = Intrinsic::hexagon_A4_vcmpbeq_any; break; + case Hexagon::BI__builtin_HEXAGON_A2_vcmpbgtu: ID = Intrinsic::hexagon_A2_vcmpbgtu; break; + case Hexagon::BI__builtin_HEXAGON_A4_vcmpbgtui: + ID = Intrinsic::hexagon_A4_vcmpbgtui; break; + + case Hexagon::BI__builtin_HEXAGON_A4_vcmpbgt: + ID = Intrinsic::hexagon_A4_vcmpbgt; break; + + case Hexagon::BI__builtin_HEXAGON_A4_vcmpbgti: + ID = Intrinsic::hexagon_A4_vcmpbgti; break; + + case Hexagon::BI__builtin_HEXAGON_A4_cmpbeq: + ID = Intrinsic::hexagon_A4_cmpbeq; break; + + case Hexagon::BI__builtin_HEXAGON_A4_cmpbeqi: + ID = Intrinsic::hexagon_A4_cmpbeqi; break; + + case Hexagon::BI__builtin_HEXAGON_A4_cmpbgtu: + ID = Intrinsic::hexagon_A4_cmpbgtu; break; + + case Hexagon::BI__builtin_HEXAGON_A4_cmpbgtui: + ID = Intrinsic::hexagon_A4_cmpbgtui; break; + + case Hexagon::BI__builtin_HEXAGON_A4_cmpbgt: + ID = Intrinsic::hexagon_A4_cmpbgt; break; + + case Hexagon::BI__builtin_HEXAGON_A4_cmpbgti: + ID = Intrinsic::hexagon_A4_cmpbgti; break; + case Hexagon::BI__builtin_HEXAGON_A2_vcmpheq: ID = Intrinsic::hexagon_A2_vcmpheq; break; @@ -2575,6 +2683,33 @@ Value *CodeGenFunction::EmitHexagonBuiltinExpr(unsigned BuiltinID, case Hexagon::BI__builtin_HEXAGON_A2_vcmphgtu: ID = Intrinsic::hexagon_A2_vcmphgtu; break; + case Hexagon::BI__builtin_HEXAGON_A4_vcmpheqi: + ID = Intrinsic::hexagon_A4_vcmpheqi; break; + + case Hexagon::BI__builtin_HEXAGON_A4_vcmphgti: + ID = Intrinsic::hexagon_A4_vcmphgti; break; + + case Hexagon::BI__builtin_HEXAGON_A4_vcmphgtui: + ID = Intrinsic::hexagon_A4_vcmphgtui; break; + + case Hexagon::BI__builtin_HEXAGON_A4_cmpheq: + ID = Intrinsic::hexagon_A4_cmpheq; break; + + case Hexagon::BI__builtin_HEXAGON_A4_cmphgt: + ID = Intrinsic::hexagon_A4_cmphgt; break; + + case Hexagon::BI__builtin_HEXAGON_A4_cmphgtu: + ID = Intrinsic::hexagon_A4_cmphgtu; break; + + case Hexagon::BI__builtin_HEXAGON_A4_cmpheqi: + ID = Intrinsic::hexagon_A4_cmpheqi; break; + + case Hexagon::BI__builtin_HEXAGON_A4_cmphgti: + ID = Intrinsic::hexagon_A4_cmphgti; break; + + case Hexagon::BI__builtin_HEXAGON_A4_cmphgtui: + ID = Intrinsic::hexagon_A4_cmphgtui; break; + case Hexagon::BI__builtin_HEXAGON_A2_vcmpweq: ID = Intrinsic::hexagon_A2_vcmpweq; break; @@ -2584,12 +2719,33 @@ Value *CodeGenFunction::EmitHexagonBuiltinExpr(unsigned BuiltinID, case Hexagon::BI__builtin_HEXAGON_A2_vcmpwgtu: ID = Intrinsic::hexagon_A2_vcmpwgtu; break; + case Hexagon::BI__builtin_HEXAGON_A4_vcmpweqi: + ID = Intrinsic::hexagon_A4_vcmpweqi; break; + + case Hexagon::BI__builtin_HEXAGON_A4_vcmpwgti: + ID = Intrinsic::hexagon_A4_vcmpwgti; break; + + case Hexagon::BI__builtin_HEXAGON_A4_vcmpwgtui: + ID = Intrinsic::hexagon_A4_vcmpwgtui; break; + + case Hexagon::BI__builtin_HEXAGON_A4_boundscheck: + ID = Intrinsic::hexagon_A4_boundscheck; break; + + case Hexagon::BI__builtin_HEXAGON_A4_tlbmatch: + ID = Intrinsic::hexagon_A4_tlbmatch; break; + case Hexagon::BI__builtin_HEXAGON_C2_tfrpr: ID = Intrinsic::hexagon_C2_tfrpr; break; case Hexagon::BI__builtin_HEXAGON_C2_tfrrp: ID = Intrinsic::hexagon_C2_tfrrp; break; + case Hexagon::BI__builtin_HEXAGON_C4_fastcorner9: + ID = Intrinsic::hexagon_C4_fastcorner9; break; + + case Hexagon::BI__builtin_HEXAGON_C4_fastcorner9_not: + ID = Intrinsic::hexagon_C4_fastcorner9_not; break; + case Hexagon::BI__builtin_HEXAGON_M2_mpy_acc_hh_s0: ID = Intrinsic::hexagon_M2_mpy_acc_hh_s0; break; @@ -3052,12 +3208,27 @@ Value *CodeGenFunction::EmitHexagonBuiltinExpr(unsigned BuiltinID, case Hexagon::BI__builtin_HEXAGON_M2_mpy_up: ID = Intrinsic::hexagon_M2_mpy_up; break; + case Hexagon::BI__builtin_HEXAGON_M2_mpy_up_s1: + ID = Intrinsic::hexagon_M2_mpy_up_s1; break; + + case Hexagon::BI__builtin_HEXAGON_M2_mpy_up_s1_sat: + ID = Intrinsic::hexagon_M2_mpy_up_s1_sat; break; + case Hexagon::BI__builtin_HEXAGON_M2_mpyu_up: ID = Intrinsic::hexagon_M2_mpyu_up; break; + case Hexagon::BI__builtin_HEXAGON_M2_mpysu_up: + ID = Intrinsic::hexagon_M2_mpysu_up; break; + case Hexagon::BI__builtin_HEXAGON_M2_dpmpyss_rnd_s0: ID = Intrinsic::hexagon_M2_dpmpyss_rnd_s0; break; + case Hexagon::BI__builtin_HEXAGON_M4_mac_up_s1_sat: + ID = Intrinsic::hexagon_M4_mac_up_s1_sat; break; + + case Hexagon::BI__builtin_HEXAGON_M4_nac_up_s1_sat: + ID = Intrinsic::hexagon_M4_nac_up_s1_sat; break; + case Hexagon::BI__builtin_HEXAGON_M2_mpyi: ID = Intrinsic::hexagon_M2_mpyi; break; @@ -3082,6 +3253,21 @@ Value *CodeGenFunction::EmitHexagonBuiltinExpr(unsigned BuiltinID, case Hexagon::BI__builtin_HEXAGON_M2_subacc: ID = Intrinsic::hexagon_M2_subacc; break; + case Hexagon::BI__builtin_HEXAGON_M4_mpyrr_addr: + ID = Intrinsic::hexagon_M4_mpyrr_addr; break; + + case Hexagon::BI__builtin_HEXAGON_M4_mpyri_addr_u2: + ID = Intrinsic::hexagon_M4_mpyri_addr_u2; break; + + case Hexagon::BI__builtin_HEXAGON_M4_mpyri_addr: + ID = Intrinsic::hexagon_M4_mpyri_addr; break; + + case Hexagon::BI__builtin_HEXAGON_M4_mpyri_addi: + ID = Intrinsic::hexagon_M4_mpyri_addi; break; + + case Hexagon::BI__builtin_HEXAGON_M4_mpyrr_addi: + ID = Intrinsic::hexagon_M4_mpyrr_addi; break; + case Hexagon::BI__builtin_HEXAGON_M2_vmpy2s_s0: ID = Intrinsic::hexagon_M2_vmpy2s_s0; break; @@ -3094,6 +3280,18 @@ Value *CodeGenFunction::EmitHexagonBuiltinExpr(unsigned BuiltinID, case Hexagon::BI__builtin_HEXAGON_M2_vmac2s_s1: ID = Intrinsic::hexagon_M2_vmac2s_s1; break; + case Hexagon::BI__builtin_HEXAGON_M2_vmpy2su_s0: + ID = Intrinsic::hexagon_M2_vmpy2su_s0; break; + + case Hexagon::BI__builtin_HEXAGON_M2_vmpy2su_s1: + ID = Intrinsic::hexagon_M2_vmpy2su_s1; break; + + case Hexagon::BI__builtin_HEXAGON_M2_vmac2su_s0: + ID = Intrinsic::hexagon_M2_vmac2su_s0; break; + + case Hexagon::BI__builtin_HEXAGON_M2_vmac2su_s1: + ID = Intrinsic::hexagon_M2_vmac2su_s1; break; + case Hexagon::BI__builtin_HEXAGON_M2_vmpy2s_s0pack: ID = Intrinsic::hexagon_M2_vmpy2s_s0pack; break; @@ -3130,6 +3328,36 @@ Value *CodeGenFunction::EmitHexagonBuiltinExpr(unsigned BuiltinID, case Hexagon::BI__builtin_HEXAGON_M2_vdmpyrs_s1: ID = Intrinsic::hexagon_M2_vdmpyrs_s1; break; + case Hexagon::BI__builtin_HEXAGON_M5_vrmpybuu: + ID = Intrinsic::hexagon_M5_vrmpybuu; break; + + case Hexagon::BI__builtin_HEXAGON_M5_vrmacbuu: + ID = Intrinsic::hexagon_M5_vrmacbuu; break; + + case Hexagon::BI__builtin_HEXAGON_M5_vrmpybsu: + ID = Intrinsic::hexagon_M5_vrmpybsu; break; + + case Hexagon::BI__builtin_HEXAGON_M5_vrmacbsu: + ID = Intrinsic::hexagon_M5_vrmacbsu; break; + + case Hexagon::BI__builtin_HEXAGON_M5_vmpybuu: + ID = Intrinsic::hexagon_M5_vmpybuu; break; + + case Hexagon::BI__builtin_HEXAGON_M5_vmpybsu: + ID = Intrinsic::hexagon_M5_vmpybsu; break; + + case Hexagon::BI__builtin_HEXAGON_M5_vmacbuu: + ID = Intrinsic::hexagon_M5_vmacbuu; break; + + case Hexagon::BI__builtin_HEXAGON_M5_vmacbsu: + ID = Intrinsic::hexagon_M5_vmacbsu; break; + + case Hexagon::BI__builtin_HEXAGON_M5_vdmpybsu: + ID = Intrinsic::hexagon_M5_vdmpybsu; break; + + case Hexagon::BI__builtin_HEXAGON_M5_vdmacbsu: + ID = Intrinsic::hexagon_M5_vdmacbsu; break; + case Hexagon::BI__builtin_HEXAGON_M2_vdmacs_s0: ID = Intrinsic::hexagon_M2_vdmacs_s0; break; @@ -3247,12 +3475,42 @@ Value *CodeGenFunction::EmitHexagonBuiltinExpr(unsigned BuiltinID, case Hexagon::BI__builtin_HEXAGON_M2_mmpyh_rs1: ID = Intrinsic::hexagon_M2_mmpyh_rs1; break; + case Hexagon::BI__builtin_HEXAGON_M4_vrmpyeh_s0: + ID = Intrinsic::hexagon_M4_vrmpyeh_s0; break; + + case Hexagon::BI__builtin_HEXAGON_M4_vrmpyeh_s1: + ID = Intrinsic::hexagon_M4_vrmpyeh_s1; break; + + case Hexagon::BI__builtin_HEXAGON_M4_vrmpyeh_acc_s0: + ID = Intrinsic::hexagon_M4_vrmpyeh_acc_s0; break; + + case Hexagon::BI__builtin_HEXAGON_M4_vrmpyeh_acc_s1: + ID = Intrinsic::hexagon_M4_vrmpyeh_acc_s1; break; + + case Hexagon::BI__builtin_HEXAGON_M4_vrmpyoh_s0: + ID = Intrinsic::hexagon_M4_vrmpyoh_s0; break; + + case Hexagon::BI__builtin_HEXAGON_M4_vrmpyoh_s1: + ID = Intrinsic::hexagon_M4_vrmpyoh_s1; break; + + case Hexagon::BI__builtin_HEXAGON_M4_vrmpyoh_acc_s0: + ID = Intrinsic::hexagon_M4_vrmpyoh_acc_s0; break; + + case Hexagon::BI__builtin_HEXAGON_M4_vrmpyoh_acc_s1: + ID = Intrinsic::hexagon_M4_vrmpyoh_acc_s1; break; + case Hexagon::BI__builtin_HEXAGON_M2_hmmpyl_rs1: ID = Intrinsic::hexagon_M2_hmmpyl_rs1; break; case Hexagon::BI__builtin_HEXAGON_M2_hmmpyh_rs1: ID = Intrinsic::hexagon_M2_hmmpyh_rs1; break; + case Hexagon::BI__builtin_HEXAGON_M2_hmmpyl_s1: + ID = Intrinsic::hexagon_M2_hmmpyl_s1; break; + + case Hexagon::BI__builtin_HEXAGON_M2_hmmpyh_s1: + ID = Intrinsic::hexagon_M2_hmmpyh_s1; break; + case Hexagon::BI__builtin_HEXAGON_M2_mmaculs_s0: ID = Intrinsic::hexagon_M2_mmaculs_s0; break; @@ -3337,6 +3595,18 @@ Value *CodeGenFunction::EmitHexagonBuiltinExpr(unsigned BuiltinID, case Hexagon::BI__builtin_HEXAGON_M2_cmpyr_s0: ID = Intrinsic::hexagon_M2_cmpyr_s0; break; + case Hexagon::BI__builtin_HEXAGON_M4_cmpyi_wh: + ID = Intrinsic::hexagon_M4_cmpyi_wh; break; + + case Hexagon::BI__builtin_HEXAGON_M4_cmpyr_wh: + ID = Intrinsic::hexagon_M4_cmpyr_wh; break; + + case Hexagon::BI__builtin_HEXAGON_M4_cmpyi_whc: + ID = Intrinsic::hexagon_M4_cmpyi_whc; break; + + case Hexagon::BI__builtin_HEXAGON_M4_cmpyr_whc: + ID = Intrinsic::hexagon_M4_cmpyr_whc; break; + case Hexagon::BI__builtin_HEXAGON_M2_vcmpy_s0_sat_i: ID = Intrinsic::hexagon_M2_vcmpy_s0_sat_i; break; @@ -3358,6 +3628,30 @@ Value *CodeGenFunction::EmitHexagonBuiltinExpr(unsigned BuiltinID, case Hexagon::BI__builtin_HEXAGON_S2_vcrotate: ID = Intrinsic::hexagon_S2_vcrotate; break; + case Hexagon::BI__builtin_HEXAGON_S4_vrcrotate_acc: + ID = Intrinsic::hexagon_S4_vrcrotate_acc; break; + + case Hexagon::BI__builtin_HEXAGON_S4_vrcrotate: + ID = Intrinsic::hexagon_S4_vrcrotate; break; + + case Hexagon::BI__builtin_HEXAGON_S2_vcnegh: + ID = Intrinsic::hexagon_S2_vcnegh; break; + + case Hexagon::BI__builtin_HEXAGON_S2_vrcnegh: + ID = Intrinsic::hexagon_S2_vrcnegh; break; + + case Hexagon::BI__builtin_HEXAGON_M4_pmpyw: + ID = Intrinsic::hexagon_M4_pmpyw; break; + + case Hexagon::BI__builtin_HEXAGON_M4_vpmpyh: + ID = Intrinsic::hexagon_M4_vpmpyh; break; + + case Hexagon::BI__builtin_HEXAGON_M4_pmpyw_acc: + ID = Intrinsic::hexagon_M4_pmpyw_acc; break; + + case Hexagon::BI__builtin_HEXAGON_M4_vpmpyh_acc: + ID = Intrinsic::hexagon_M4_vpmpyh_acc; break; + case Hexagon::BI__builtin_HEXAGON_A2_add: ID = Intrinsic::hexagon_A2_add; break; @@ -3535,6 +3829,12 @@ Value *CodeGenFunction::EmitHexagonBuiltinExpr(unsigned BuiltinID, case Hexagon::BI__builtin_HEXAGON_A2_combinew: ID = Intrinsic::hexagon_A2_combinew; break; + case Hexagon::BI__builtin_HEXAGON_A4_combineri: + ID = Intrinsic::hexagon_A4_combineri; break; + + case Hexagon::BI__builtin_HEXAGON_A4_combineir: + ID = Intrinsic::hexagon_A4_combineir; break; + case Hexagon::BI__builtin_HEXAGON_A2_combineii: ID = Intrinsic::hexagon_A2_combineii; break; @@ -3571,6 +3871,69 @@ Value *CodeGenFunction::EmitHexagonBuiltinExpr(unsigned BuiltinID, case Hexagon::BI__builtin_HEXAGON_M2_xor_xacc: ID = Intrinsic::hexagon_M2_xor_xacc; break; + case Hexagon::BI__builtin_HEXAGON_M4_xor_xacc: + ID = Intrinsic::hexagon_M4_xor_xacc; break; + + case Hexagon::BI__builtin_HEXAGON_A4_andn: + ID = Intrinsic::hexagon_A4_andn; break; + + case Hexagon::BI__builtin_HEXAGON_A4_orn: + ID = Intrinsic::hexagon_A4_orn; break; + + case Hexagon::BI__builtin_HEXAGON_A4_andnp: + ID = Intrinsic::hexagon_A4_andnp; break; + + case Hexagon::BI__builtin_HEXAGON_A4_ornp: + ID = Intrinsic::hexagon_A4_ornp; break; + + case Hexagon::BI__builtin_HEXAGON_S4_addaddi: + ID = Intrinsic::hexagon_S4_addaddi; break; + + case Hexagon::BI__builtin_HEXAGON_S4_subaddi: + ID = Intrinsic::hexagon_S4_subaddi; break; + + case Hexagon::BI__builtin_HEXAGON_M4_and_and: + ID = Intrinsic::hexagon_M4_and_and; break; + + case Hexagon::BI__builtin_HEXAGON_M4_and_andn: + ID = Intrinsic::hexagon_M4_and_andn; break; + + case Hexagon::BI__builtin_HEXAGON_M4_and_or: + ID = Intrinsic::hexagon_M4_and_or; break; + + case Hexagon::BI__builtin_HEXAGON_M4_and_xor: + ID = Intrinsic::hexagon_M4_and_xor; break; + + case Hexagon::BI__builtin_HEXAGON_M4_or_and: + ID = Intrinsic::hexagon_M4_or_and; break; + + case Hexagon::BI__builtin_HEXAGON_M4_or_andn: + ID = Intrinsic::hexagon_M4_or_andn; break; + + case Hexagon::BI__builtin_HEXAGON_M4_or_or: + ID = Intrinsic::hexagon_M4_or_or; break; + + case Hexagon::BI__builtin_HEXAGON_M4_or_xor: + ID = Intrinsic::hexagon_M4_or_xor; break; + + case Hexagon::BI__builtin_HEXAGON_S4_or_andix: + ID = Intrinsic::hexagon_S4_or_andix; break; + + case Hexagon::BI__builtin_HEXAGON_S4_or_andi: + ID = Intrinsic::hexagon_S4_or_andi; break; + + case Hexagon::BI__builtin_HEXAGON_S4_or_ori: + ID = Intrinsic::hexagon_S4_or_ori; break; + + case Hexagon::BI__builtin_HEXAGON_M4_xor_and: + ID = Intrinsic::hexagon_M4_xor_and; break; + + case Hexagon::BI__builtin_HEXAGON_M4_xor_or: + ID = Intrinsic::hexagon_M4_xor_or; break; + + case Hexagon::BI__builtin_HEXAGON_M4_xor_andn: + ID = Intrinsic::hexagon_M4_xor_andn; break; + case Hexagon::BI__builtin_HEXAGON_A2_subri: ID = Intrinsic::hexagon_A2_subri; break; @@ -3598,6 +3961,9 @@ Value *CodeGenFunction::EmitHexagonBuiltinExpr(unsigned BuiltinID, case Hexagon::BI__builtin_HEXAGON_A2_sat: ID = Intrinsic::hexagon_A2_sat; break; + case Hexagon::BI__builtin_HEXAGON_A2_roundsat: + ID = Intrinsic::hexagon_A2_roundsat; break; + case Hexagon::BI__builtin_HEXAGON_A2_sath: ID = Intrinsic::hexagon_A2_sath; break; @@ -3613,6 +3979,9 @@ Value *CodeGenFunction::EmitHexagonBuiltinExpr(unsigned BuiltinID, case Hexagon::BI__builtin_HEXAGON_A2_vaddub: ID = Intrinsic::hexagon_A2_vaddub; break; + case Hexagon::BI__builtin_HEXAGON_A2_vaddb_map: + ID = Intrinsic::hexagon_A2_vaddb_map; break; + case Hexagon::BI__builtin_HEXAGON_A2_vaddubs: ID = Intrinsic::hexagon_A2_vaddubs; break; @@ -3625,12 +3994,33 @@ Value *CodeGenFunction::EmitHexagonBuiltinExpr(unsigned BuiltinID, case Hexagon::BI__builtin_HEXAGON_A2_vadduhs: ID = Intrinsic::hexagon_A2_vadduhs; break; + case Hexagon::BI__builtin_HEXAGON_A5_vaddhubs: + ID = Intrinsic::hexagon_A5_vaddhubs; break; + case Hexagon::BI__builtin_HEXAGON_A2_vaddw: ID = Intrinsic::hexagon_A2_vaddw; break; case Hexagon::BI__builtin_HEXAGON_A2_vaddws: ID = Intrinsic::hexagon_A2_vaddws; break; + case Hexagon::BI__builtin_HEXAGON_S4_vxaddsubw: + ID = Intrinsic::hexagon_S4_vxaddsubw; break; + + case Hexagon::BI__builtin_HEXAGON_S4_vxsubaddw: + ID = Intrinsic::hexagon_S4_vxsubaddw; break; + + case Hexagon::BI__builtin_HEXAGON_S4_vxaddsubh: + ID = Intrinsic::hexagon_S4_vxaddsubh; break; + + case Hexagon::BI__builtin_HEXAGON_S4_vxsubaddh: + ID = Intrinsic::hexagon_S4_vxsubaddh; break; + + case Hexagon::BI__builtin_HEXAGON_S4_vxaddsubhr: + ID = Intrinsic::hexagon_S4_vxaddsubhr; break; + + case Hexagon::BI__builtin_HEXAGON_S4_vxsubaddhr: + ID = Intrinsic::hexagon_S4_vxsubaddhr; break; + case Hexagon::BI__builtin_HEXAGON_A2_svavgh: ID = Intrinsic::hexagon_A2_svavgh; break; @@ -3664,12 +4054,18 @@ Value *CodeGenFunction::EmitHexagonBuiltinExpr(unsigned BuiltinID, case Hexagon::BI__builtin_HEXAGON_A2_vraddub_acc: ID = Intrinsic::hexagon_A2_vraddub_acc; break; + case Hexagon::BI__builtin_HEXAGON_M2_vraddh: + ID = Intrinsic::hexagon_M2_vraddh; break; + case Hexagon::BI__builtin_HEXAGON_M2_vradduh: ID = Intrinsic::hexagon_M2_vradduh; break; case Hexagon::BI__builtin_HEXAGON_A2_vsubub: ID = Intrinsic::hexagon_A2_vsubub; break; + case Hexagon::BI__builtin_HEXAGON_A2_vsubb_map: + ID = Intrinsic::hexagon_A2_vsubb_map; break; + case Hexagon::BI__builtin_HEXAGON_A2_vsububs: ID = Intrinsic::hexagon_A2_vsububs; break; @@ -3766,11 +4162,53 @@ Value *CodeGenFunction::EmitHexagonBuiltinExpr(unsigned BuiltinID, case Hexagon::BI__builtin_HEXAGON_A2_vnavghr: ID = Intrinsic::hexagon_A2_vnavghr; break; - case Hexagon::BI__builtin_HEXAGON_A2_vminh: - ID = Intrinsic::hexagon_A2_vminh; break; + case Hexagon::BI__builtin_HEXAGON_A4_round_ri: + ID = Intrinsic::hexagon_A4_round_ri; break; - case Hexagon::BI__builtin_HEXAGON_A2_vmaxh: - ID = Intrinsic::hexagon_A2_vmaxh; break; + case Hexagon::BI__builtin_HEXAGON_A4_round_rr: + ID = Intrinsic::hexagon_A4_round_rr; break; + + case Hexagon::BI__builtin_HEXAGON_A4_round_ri_sat: + ID = Intrinsic::hexagon_A4_round_ri_sat; break; + + case Hexagon::BI__builtin_HEXAGON_A4_round_rr_sat: + ID = Intrinsic::hexagon_A4_round_rr_sat; break; + + case Hexagon::BI__builtin_HEXAGON_A4_cround_ri: + ID = Intrinsic::hexagon_A4_cround_ri; break; + + case Hexagon::BI__builtin_HEXAGON_A4_cround_rr: + ID = Intrinsic::hexagon_A4_cround_rr; break; + + case Hexagon::BI__builtin_HEXAGON_A4_vrminh: + ID = Intrinsic::hexagon_A4_vrminh; break; + + case Hexagon::BI__builtin_HEXAGON_A4_vrmaxh: + ID = Intrinsic::hexagon_A4_vrmaxh; break; + + case Hexagon::BI__builtin_HEXAGON_A4_vrminuh: + ID = Intrinsic::hexagon_A4_vrminuh; break; + + case Hexagon::BI__builtin_HEXAGON_A4_vrmaxuh: + ID = Intrinsic::hexagon_A4_vrmaxuh; break; + + case Hexagon::BI__builtin_HEXAGON_A4_vrminw: + ID = Intrinsic::hexagon_A4_vrminw; break; + + case Hexagon::BI__builtin_HEXAGON_A4_vrmaxw: + ID = Intrinsic::hexagon_A4_vrmaxw; break; + + case Hexagon::BI__builtin_HEXAGON_A4_vrminuw: + ID = Intrinsic::hexagon_A4_vrminuw; break; + + case Hexagon::BI__builtin_HEXAGON_A4_vrmaxuw: + ID = Intrinsic::hexagon_A4_vrmaxuw; break; + + case Hexagon::BI__builtin_HEXAGON_A2_vminb: + ID = Intrinsic::hexagon_A2_vminb; break; + + case Hexagon::BI__builtin_HEXAGON_A2_vmaxb: + ID = Intrinsic::hexagon_A2_vmaxb; break; case Hexagon::BI__builtin_HEXAGON_A2_vminub: ID = Intrinsic::hexagon_A2_vminub; break; @@ -3778,6 +4216,12 @@ Value *CodeGenFunction::EmitHexagonBuiltinExpr(unsigned BuiltinID, case Hexagon::BI__builtin_HEXAGON_A2_vmaxub: ID = Intrinsic::hexagon_A2_vmaxub; break; + case Hexagon::BI__builtin_HEXAGON_A2_vminh: + ID = Intrinsic::hexagon_A2_vminh; break; + + case Hexagon::BI__builtin_HEXAGON_A2_vmaxh: + ID = Intrinsic::hexagon_A2_vmaxh; break; + case Hexagon::BI__builtin_HEXAGON_A2_vminuh: ID = Intrinsic::hexagon_A2_vminuh; break; @@ -3796,6 +4240,207 @@ Value *CodeGenFunction::EmitHexagonBuiltinExpr(unsigned BuiltinID, case Hexagon::BI__builtin_HEXAGON_A2_vmaxuw: ID = Intrinsic::hexagon_A2_vmaxuw; break; + case Hexagon::BI__builtin_HEXAGON_A4_modwrapu: + ID = Intrinsic::hexagon_A4_modwrapu; break; + + case Hexagon::BI__builtin_HEXAGON_F2_sfadd: + ID = Intrinsic::hexagon_F2_sfadd; break; + + case Hexagon::BI__builtin_HEXAGON_F2_sfsub: + ID = Intrinsic::hexagon_F2_sfsub; break; + + case Hexagon::BI__builtin_HEXAGON_F2_sfmpy: + ID = Intrinsic::hexagon_F2_sfmpy; break; + + case Hexagon::BI__builtin_HEXAGON_F2_sffma: + ID = Intrinsic::hexagon_F2_sffma; break; + + case Hexagon::BI__builtin_HEXAGON_F2_sffma_sc: + ID = Intrinsic::hexagon_F2_sffma_sc; break; + + case Hexagon::BI__builtin_HEXAGON_F2_sffms: + ID = Intrinsic::hexagon_F2_sffms; break; + + case Hexagon::BI__builtin_HEXAGON_F2_sffma_lib: + ID = Intrinsic::hexagon_F2_sffma_lib; break; + + case Hexagon::BI__builtin_HEXAGON_F2_sffms_lib: + ID = Intrinsic::hexagon_F2_sffms_lib; break; + + case Hexagon::BI__builtin_HEXAGON_F2_sfcmpeq: + ID = Intrinsic::hexagon_F2_sfcmpeq; break; + + case Hexagon::BI__builtin_HEXAGON_F2_sfcmpgt: + ID = Intrinsic::hexagon_F2_sfcmpgt; break; + + case Hexagon::BI__builtin_HEXAGON_F2_sfcmpge: + ID = Intrinsic::hexagon_F2_sfcmpge; break; + + case Hexagon::BI__builtin_HEXAGON_F2_sfcmpuo: + ID = Intrinsic::hexagon_F2_sfcmpuo; break; + + case Hexagon::BI__builtin_HEXAGON_F2_sfmax: + ID = Intrinsic::hexagon_F2_sfmax; break; + + case Hexagon::BI__builtin_HEXAGON_F2_sfmin: + ID = Intrinsic::hexagon_F2_sfmin; break; + + case Hexagon::BI__builtin_HEXAGON_F2_sfclass: + ID = Intrinsic::hexagon_F2_sfclass; break; + + case Hexagon::BI__builtin_HEXAGON_F2_sfimm_p: + ID = Intrinsic::hexagon_F2_sfimm_p; break; + + case Hexagon::BI__builtin_HEXAGON_F2_sfimm_n: + ID = Intrinsic::hexagon_F2_sfimm_n; break; + + case Hexagon::BI__builtin_HEXAGON_F2_sffixupn: + ID = Intrinsic::hexagon_F2_sffixupn; break; + + case Hexagon::BI__builtin_HEXAGON_F2_sffixupd: + ID = Intrinsic::hexagon_F2_sffixupd; break; + + case Hexagon::BI__builtin_HEXAGON_F2_sffixupr: + ID = Intrinsic::hexagon_F2_sffixupr; break; + + case Hexagon::BI__builtin_HEXAGON_F2_dfadd: + ID = Intrinsic::hexagon_F2_dfadd; break; + + case Hexagon::BI__builtin_HEXAGON_F2_dfsub: + ID = Intrinsic::hexagon_F2_dfsub; break; + + case Hexagon::BI__builtin_HEXAGON_F2_dfmpy: + ID = Intrinsic::hexagon_F2_dfmpy; break; + + case Hexagon::BI__builtin_HEXAGON_F2_dffma: + ID = Intrinsic::hexagon_F2_dffma; break; + + case Hexagon::BI__builtin_HEXAGON_F2_dffms: + ID = Intrinsic::hexagon_F2_dffms; break; + + case Hexagon::BI__builtin_HEXAGON_F2_dffma_lib: + ID = Intrinsic::hexagon_F2_dffma_lib; break; + + case Hexagon::BI__builtin_HEXAGON_F2_dffms_lib: + ID = Intrinsic::hexagon_F2_dffms_lib; break; + + case Hexagon::BI__builtin_HEXAGON_F2_dffma_sc: + ID = Intrinsic::hexagon_F2_dffma_sc; break; + + case Hexagon::BI__builtin_HEXAGON_F2_dfmax: + ID = Intrinsic::hexagon_F2_dfmax; break; + + case Hexagon::BI__builtin_HEXAGON_F2_dfmin: + ID = Intrinsic::hexagon_F2_dfmin; break; + + case Hexagon::BI__builtin_HEXAGON_F2_dfcmpeq: + ID = Intrinsic::hexagon_F2_dfcmpeq; break; + + case Hexagon::BI__builtin_HEXAGON_F2_dfcmpgt: + ID = Intrinsic::hexagon_F2_dfcmpgt; break; + + case Hexagon::BI__builtin_HEXAGON_F2_dfcmpge: + ID = Intrinsic::hexagon_F2_dfcmpge; break; + + case Hexagon::BI__builtin_HEXAGON_F2_dfcmpuo: + ID = Intrinsic::hexagon_F2_dfcmpuo; break; + + case Hexagon::BI__builtin_HEXAGON_F2_dfclass: + ID = Intrinsic::hexagon_F2_dfclass; break; + + case Hexagon::BI__builtin_HEXAGON_F2_dfimm_p: + ID = Intrinsic::hexagon_F2_dfimm_p; break; + + case Hexagon::BI__builtin_HEXAGON_F2_dfimm_n: + ID = Intrinsic::hexagon_F2_dfimm_n; break; + + case Hexagon::BI__builtin_HEXAGON_F2_dffixupn: + ID = Intrinsic::hexagon_F2_dffixupn; break; + + case Hexagon::BI__builtin_HEXAGON_F2_dffixupd: + ID = Intrinsic::hexagon_F2_dffixupd; break; + + case Hexagon::BI__builtin_HEXAGON_F2_dffixupr: + ID = Intrinsic::hexagon_F2_dffixupr; break; + + case Hexagon::BI__builtin_HEXAGON_F2_conv_sf2df: + ID = Intrinsic::hexagon_F2_conv_sf2df; break; + + case Hexagon::BI__builtin_HEXAGON_F2_conv_df2sf: + ID = Intrinsic::hexagon_F2_conv_df2sf; break; + + case Hexagon::BI__builtin_HEXAGON_F2_conv_uw2sf: + ID = Intrinsic::hexagon_F2_conv_uw2sf; break; + + case Hexagon::BI__builtin_HEXAGON_F2_conv_uw2df: + ID = Intrinsic::hexagon_F2_conv_uw2df; break; + + case Hexagon::BI__builtin_HEXAGON_F2_conv_w2sf: + ID = Intrinsic::hexagon_F2_conv_w2sf; break; + + case Hexagon::BI__builtin_HEXAGON_F2_conv_w2df: + ID = Intrinsic::hexagon_F2_conv_w2df; break; + + case Hexagon::BI__builtin_HEXAGON_F2_conv_ud2sf: + ID = Intrinsic::hexagon_F2_conv_ud2sf; break; + + case Hexagon::BI__builtin_HEXAGON_F2_conv_ud2df: + ID = Intrinsic::hexagon_F2_conv_ud2df; break; + + case Hexagon::BI__builtin_HEXAGON_F2_conv_d2sf: + ID = Intrinsic::hexagon_F2_conv_d2sf; break; + + case Hexagon::BI__builtin_HEXAGON_F2_conv_d2df: + ID = Intrinsic::hexagon_F2_conv_d2df; break; + + case Hexagon::BI__builtin_HEXAGON_F2_conv_sf2uw: + ID = Intrinsic::hexagon_F2_conv_sf2uw; break; + + case Hexagon::BI__builtin_HEXAGON_F2_conv_sf2w: + ID = Intrinsic::hexagon_F2_conv_sf2w; break; + + case Hexagon::BI__builtin_HEXAGON_F2_conv_sf2ud: + ID = Intrinsic::hexagon_F2_conv_sf2ud; break; + + case Hexagon::BI__builtin_HEXAGON_F2_conv_sf2d: + ID = Intrinsic::hexagon_F2_conv_sf2d; break; + + case Hexagon::BI__builtin_HEXAGON_F2_conv_df2uw: + ID = Intrinsic::hexagon_F2_conv_df2uw; break; + + case Hexagon::BI__builtin_HEXAGON_F2_conv_df2w: + ID = Intrinsic::hexagon_F2_conv_df2w; break; + + case Hexagon::BI__builtin_HEXAGON_F2_conv_df2ud: + ID = Intrinsic::hexagon_F2_conv_df2ud; break; + + case Hexagon::BI__builtin_HEXAGON_F2_conv_df2d: + ID = Intrinsic::hexagon_F2_conv_df2d; break; + + case Hexagon::BI__builtin_HEXAGON_F2_conv_sf2uw_chop: + ID = Intrinsic::hexagon_F2_conv_sf2uw_chop; break; + + case Hexagon::BI__builtin_HEXAGON_F2_conv_sf2w_chop: + ID = Intrinsic::hexagon_F2_conv_sf2w_chop; break; + + case Hexagon::BI__builtin_HEXAGON_F2_conv_sf2ud_chop: + ID = Intrinsic::hexagon_F2_conv_sf2ud_chop; break; + + case Hexagon::BI__builtin_HEXAGON_F2_conv_sf2d_chop: + ID = Intrinsic::hexagon_F2_conv_sf2d_chop; break; + + case Hexagon::BI__builtin_HEXAGON_F2_conv_df2uw_chop: + ID = Intrinsic::hexagon_F2_conv_df2uw_chop; break; + + case Hexagon::BI__builtin_HEXAGON_F2_conv_df2w_chop: + ID = Intrinsic::hexagon_F2_conv_df2w_chop; break; + + case Hexagon::BI__builtin_HEXAGON_F2_conv_df2ud_chop: + ID = Intrinsic::hexagon_F2_conv_df2ud_chop; break; + + case Hexagon::BI__builtin_HEXAGON_F2_conv_df2d_chop: + ID = Intrinsic::hexagon_F2_conv_df2d_chop; break; + case Hexagon::BI__builtin_HEXAGON_S2_asr_r_r: ID = Intrinsic::hexagon_S2_asr_r_r; break; @@ -3916,6 +4561,18 @@ Value *CodeGenFunction::EmitHexagonBuiltinExpr(unsigned BuiltinID, case Hexagon::BI__builtin_HEXAGON_S2_lsl_r_p_or: ID = Intrinsic::hexagon_S2_lsl_r_p_or; break; + case Hexagon::BI__builtin_HEXAGON_S2_asr_r_p_xor: + ID = Intrinsic::hexagon_S2_asr_r_p_xor; break; + + case Hexagon::BI__builtin_HEXAGON_S2_asl_r_p_xor: + ID = Intrinsic::hexagon_S2_asl_r_p_xor; break; + + case Hexagon::BI__builtin_HEXAGON_S2_lsr_r_p_xor: + ID = Intrinsic::hexagon_S2_lsr_r_p_xor; break; + + case Hexagon::BI__builtin_HEXAGON_S2_lsl_r_p_xor: + ID = Intrinsic::hexagon_S2_lsl_r_p_xor; break; + case Hexagon::BI__builtin_HEXAGON_S2_asr_r_r_sat: ID = Intrinsic::hexagon_S2_asr_r_r_sat; break; @@ -4033,9 +4690,42 @@ Value *CodeGenFunction::EmitHexagonBuiltinExpr(unsigned BuiltinID, case Hexagon::BI__builtin_HEXAGON_S2_asr_i_r_rnd_goodsyntax: ID = Intrinsic::hexagon_S2_asr_i_r_rnd_goodsyntax; break; + case Hexagon::BI__builtin_HEXAGON_S2_asr_i_p_rnd: + ID = Intrinsic::hexagon_S2_asr_i_p_rnd; break; + + case Hexagon::BI__builtin_HEXAGON_S2_asr_i_p_rnd_goodsyntax: + ID = Intrinsic::hexagon_S2_asr_i_p_rnd_goodsyntax; break; + + case Hexagon::BI__builtin_HEXAGON_S4_lsli: + ID = Intrinsic::hexagon_S4_lsli; break; + case Hexagon::BI__builtin_HEXAGON_S2_addasl_rrri: ID = Intrinsic::hexagon_S2_addasl_rrri; break; + case Hexagon::BI__builtin_HEXAGON_S4_andi_asl_ri: + ID = Intrinsic::hexagon_S4_andi_asl_ri; break; + + case Hexagon::BI__builtin_HEXAGON_S4_ori_asl_ri: + ID = Intrinsic::hexagon_S4_ori_asl_ri; break; + + case Hexagon::BI__builtin_HEXAGON_S4_addi_asl_ri: + ID = Intrinsic::hexagon_S4_addi_asl_ri; break; + + case Hexagon::BI__builtin_HEXAGON_S4_subi_asl_ri: + ID = Intrinsic::hexagon_S4_subi_asl_ri; break; + + case Hexagon::BI__builtin_HEXAGON_S4_andi_lsr_ri: + ID = Intrinsic::hexagon_S4_andi_lsr_ri; break; + + case Hexagon::BI__builtin_HEXAGON_S4_ori_lsr_ri: + ID = Intrinsic::hexagon_S4_ori_lsr_ri; break; + + case Hexagon::BI__builtin_HEXAGON_S4_addi_lsr_ri: + ID = Intrinsic::hexagon_S4_addi_lsr_ri; break; + + case Hexagon::BI__builtin_HEXAGON_S4_subi_lsr_ri: + ID = Intrinsic::hexagon_S4_subi_lsr_ri; break; + case Hexagon::BI__builtin_HEXAGON_S2_valignib: ID = Intrinsic::hexagon_S2_valignib; break; @@ -4069,30 +4759,51 @@ Value *CodeGenFunction::EmitHexagonBuiltinExpr(unsigned BuiltinID, case Hexagon::BI__builtin_HEXAGON_S2_tableidxd_goodsyntax: ID = Intrinsic::hexagon_S2_tableidxd_goodsyntax; break; + case Hexagon::BI__builtin_HEXAGON_A4_bitspliti: + ID = Intrinsic::hexagon_A4_bitspliti; break; + + case Hexagon::BI__builtin_HEXAGON_A4_bitsplit: + ID = Intrinsic::hexagon_A4_bitsplit; break; + + case Hexagon::BI__builtin_HEXAGON_S4_extract: + ID = Intrinsic::hexagon_S4_extract; break; + case Hexagon::BI__builtin_HEXAGON_S2_extractu: ID = Intrinsic::hexagon_S2_extractu; break; case Hexagon::BI__builtin_HEXAGON_S2_insertp: ID = Intrinsic::hexagon_S2_insertp; break; + case Hexagon::BI__builtin_HEXAGON_S4_extractp: + ID = Intrinsic::hexagon_S4_extractp; break; + case Hexagon::BI__builtin_HEXAGON_S2_extractup: ID = Intrinsic::hexagon_S2_extractup; break; case Hexagon::BI__builtin_HEXAGON_S2_insert_rp: ID = Intrinsic::hexagon_S2_insert_rp; break; + case Hexagon::BI__builtin_HEXAGON_S4_extract_rp: + ID = Intrinsic::hexagon_S4_extract_rp; break; + case Hexagon::BI__builtin_HEXAGON_S2_extractu_rp: ID = Intrinsic::hexagon_S2_extractu_rp; break; case Hexagon::BI__builtin_HEXAGON_S2_insertp_rp: ID = Intrinsic::hexagon_S2_insertp_rp; break; + case Hexagon::BI__builtin_HEXAGON_S4_extractp_rp: + ID = Intrinsic::hexagon_S4_extractp_rp; break; + case Hexagon::BI__builtin_HEXAGON_S2_extractup_rp: ID = Intrinsic::hexagon_S2_extractup_rp; break; case Hexagon::BI__builtin_HEXAGON_S2_tstbit_i: ID = Intrinsic::hexagon_S2_tstbit_i; break; + case Hexagon::BI__builtin_HEXAGON_S4_ntstbit_i: + ID = Intrinsic::hexagon_S4_ntstbit_i; break; + case Hexagon::BI__builtin_HEXAGON_S2_setbit_i: ID = Intrinsic::hexagon_S2_setbit_i; break; @@ -4105,6 +4816,9 @@ Value *CodeGenFunction::EmitHexagonBuiltinExpr(unsigned BuiltinID, case Hexagon::BI__builtin_HEXAGON_S2_tstbit_r: ID = Intrinsic::hexagon_S2_tstbit_r; break; + case Hexagon::BI__builtin_HEXAGON_S4_ntstbit_r: + ID = Intrinsic::hexagon_S4_ntstbit_r; break; + case Hexagon::BI__builtin_HEXAGON_S2_setbit_r: ID = Intrinsic::hexagon_S2_setbit_r; break; @@ -4126,6 +4840,15 @@ Value *CodeGenFunction::EmitHexagonBuiltinExpr(unsigned BuiltinID, case Hexagon::BI__builtin_HEXAGON_S2_asr_r_vh: ID = Intrinsic::hexagon_S2_asr_r_vh; break; + case Hexagon::BI__builtin_HEXAGON_S5_asrhub_rnd_sat_goodsyntax: + ID = Intrinsic::hexagon_S5_asrhub_rnd_sat_goodsyntax; break; + + case Hexagon::BI__builtin_HEXAGON_S5_asrhub_sat: + ID = Intrinsic::hexagon_S5_asrhub_sat; break; + + case Hexagon::BI__builtin_HEXAGON_S5_vasrhrnd_goodsyntax: + ID = Intrinsic::hexagon_S5_vasrhrnd_goodsyntax; break; + case Hexagon::BI__builtin_HEXAGON_S2_asl_r_vh: ID = Intrinsic::hexagon_S2_asl_r_vh; break; @@ -4240,6 +4963,12 @@ Value *CodeGenFunction::EmitHexagonBuiltinExpr(unsigned BuiltinID, case Hexagon::BI__builtin_HEXAGON_S2_shuffeh: ID = Intrinsic::hexagon_S2_shuffeh; break; + case Hexagon::BI__builtin_HEXAGON_S5_popcountp: + ID = Intrinsic::hexagon_S5_popcountp; break; + + case Hexagon::BI__builtin_HEXAGON_S4_parity: + ID = Intrinsic::hexagon_S4_parity; break; + case Hexagon::BI__builtin_HEXAGON_S2_parityp: ID = Intrinsic::hexagon_S2_parityp; break; @@ -4249,6 +4978,15 @@ Value *CodeGenFunction::EmitHexagonBuiltinExpr(unsigned BuiltinID, case Hexagon::BI__builtin_HEXAGON_S2_clbnorm: ID = Intrinsic::hexagon_S2_clbnorm; break; + case Hexagon::BI__builtin_HEXAGON_S4_clbaddi: + ID = Intrinsic::hexagon_S4_clbaddi; break; + + case Hexagon::BI__builtin_HEXAGON_S4_clbpnorm: + ID = Intrinsic::hexagon_S4_clbpnorm; break; + + case Hexagon::BI__builtin_HEXAGON_S4_clbpaddi: + ID = Intrinsic::hexagon_S4_clbpaddi; break; + case Hexagon::BI__builtin_HEXAGON_S2_clb: ID = Intrinsic::hexagon_S2_clb; break; @@ -4270,168 +5008,26 @@ Value *CodeGenFunction::EmitHexagonBuiltinExpr(unsigned BuiltinID, case Hexagon::BI__builtin_HEXAGON_S2_brev: ID = Intrinsic::hexagon_S2_brev; break; + case Hexagon::BI__builtin_HEXAGON_S2_brevp: + ID = Intrinsic::hexagon_S2_brevp; break; + case Hexagon::BI__builtin_HEXAGON_S2_ct0: ID = Intrinsic::hexagon_S2_ct0; break; case Hexagon::BI__builtin_HEXAGON_S2_ct1: ID = Intrinsic::hexagon_S2_ct1; break; + case Hexagon::BI__builtin_HEXAGON_S2_ct0p: + ID = Intrinsic::hexagon_S2_ct0p; break; + + case Hexagon::BI__builtin_HEXAGON_S2_ct1 |