| { |
| "platform": "Q6_", |
| "intrinsic_prefix": "", |
| "llvm_prefix": "llvm.hexagon.V6.", |
| "number_info": { |
| "signed": { |
| "kind": "s", |
| "data_type": { "8": "b", "16": "h", "32": "w" }, |
| "data_type_plain": { "8": "b", "16": "h", "32": "w" } |
| }, |
| "unsigned": { |
| "kind": "u", |
| "data_type": { "8": "ub", "16": "uh", "32": "uw" }, |
| "data_type_plain": { "8": "b", "16": "h", "32": "w" } |
| }, |
| "float": { |
| "kind": "f", |
| "data_type": { "8": "b", "16": "h", "32": "w" }, |
| "data_type_plain": { "8": "b", "16": "h", "32": "w" } |
| } |
| }, |
| "width_info": { |
| "64": { "width_b": "64", "width_suffix": "" }, |
| "128": { "width_b": "128", "width_suffix": ".128B" }, |
| "512": { "width_b": "64", "width_suffix": "" }, |
| "1024": { "widthd_b": "64", "width_b": "128", "width_suffix": ".128B", "widthd_suffix": "" }, |
| "2048": { "widthd_b": "128", "widthd_suffix": ".128B" } |
| }, |
| "intrinsics": [ |
| { |
| "intrinsic": "R_vextract{1.width_b}", |
| "width": [512, 1024], |
| "llvm": "extractw{1.width_suffix}", |
| "ret": "U32", |
| "args": ["u32", "U32"] |
| }, |
| { |
| "intrinsic": "V_lo{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "lo{0.width_suffix}", |
| "ret": "u32", |
| "args": ["0d"] |
| }, |
| { |
| "intrinsic": "V_hi{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "hi{0.width_suffix}", |
| "ret": "u32", |
| "args": ["0d"] |
| }, |
| { |
| "intrinsic": "V_vsplat_R{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "lvsplat{1.data_type}{0.width_suffix}", |
| "ret": "u32", |
| "args": ["0S"] |
| }, |
| { |
| "intrinsic": "Q_and_QQ{0.width_b}", |
| "width": [64, 128], |
| "llvm": "pred.and{0.width_suffix}", |
| "ret": "u32", |
| "args": ["0", "0"] |
| }, |
| { |
| "intrinsic": "Q_not_Q{0.width_b}", |
| "width": [64, 128], |
| "llvm": "pred.not{0.width_suffix}", |
| "ret": "u32", |
| "args": ["0"] |
| }, |
| { |
| "intrinsic": "Q_or_QQ{0.width_b}", |
| "width": [64, 128], |
| "llvm": "pred.or{0.width_suffix}", |
| "ret": "u32", |
| "args": ["0", "0"] |
| }, |
| { |
| "intrinsic": "Q_xor_QQ{0.width_b}", |
| "width": [64, 128], |
| "llvm": "pred.xor{0.width_suffix}", |
| "ret": "u32", |
| "args": ["0", "0"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vabsdiff_V{1.data_type}V{2.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vabsdiff{1.data_type}{0.width_suffix}", |
| "ret": "u(8-16)", |
| "args": ["0", "0"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vabsdiff_V{1.data_type}V{2.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vabsdiff{1.data_type}{0.width_suffix}", |
| "ret": "u(16-32)", |
| "args": ["0s", "0s"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vabs_V{1.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vabs{1.data_type}{0.width_suffix}", |
| "ret": "s(16-32)", |
| "args": ["0"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vabs_V{1.data_type}_sat{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vabs{1.data_type}.sat{0.width_suffix}", |
| "ret": "s(16-32)", |
| "args": ["0"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vadd_V{1.data_type}V{2.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vadd{0.data_type}{0.width_suffix}", |
| "ret": "s(8-32)", |
| "args": ["0", "0"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vadd_V{1.data_type}V{2.data_type}_sat{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vadd{0.data_type}sat{0.width_suffix}", |
| "ret": "s(16-32)", |
| "args": ["0", "0"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vadd_V{1.data_type}V{2.data_type}_sat{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vadd{0.data_type}sat{0.width_suffix}", |
| "ret": "u(8-16)", |
| "args": ["0", "0"] |
| }, |
| { |
| "intrinsic": "W{0.data_type}_vadd_W{1.data_type}W{2.data_type}{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vadd{0.data_type}.dv{0.widthd_suffix}", |
| "ret": "s(8-32)d", |
| "args": ["0", "0"] |
| }, |
| { |
| "intrinsic": "W{0.data_type}_vadd_W{1.data_type}W{2.data_type}_sat{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vadd{0.data_type}sat.dv{0.widthd_suffix}", |
| "ret": "s(16-32)d", |
| "args": ["0", "0"] |
| }, |
| { |
| "intrinsic": "W{0.data_type}_vadd_W{1.data_type}W{2.data_type}_sat{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vadd{0.data_type}sat.dv{0.widthd_suffix}", |
| "ret": "u(8-16)d", |
| "args": ["0", "0"] |
| }, |
| { |
| "intrinsic": "V_valign_VVR{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "valignb{0.width_suffix}", |
| "ret": "u8", |
| "args": ["0", "0", "U32"] |
| }, |
| { |
| "intrinsic": "V_valign_VVI{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "valignbi{0.width_suffix}", |
| "ret": "u8", |
| "args": ["0", "0", "U32"] |
| }, |
| { |
| "intrinsic": "V_vlalign_VVR{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vlalignb{0.width_suffix}", |
| "ret": "u8", |
| "args": ["0", "0", "U32"] |
| }, |
| { |
| "intrinsic": "V_vlalign_VVI{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vlalignbi{0.width_suffix}", |
| "ret": "u8", |
| "args": ["0", "0", "U32"] |
| }, |
| { |
| "intrinsic": "V_vand_VV{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vand{0.width_suffix}", |
| "ret": "u16", |
| "args": ["0", "0"] |
| }, |
| { |
| "intrinsic": "V_vand_QR{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vandqrt{0.width_suffix}", |
| "ret": "u8", |
| "args": ["u32hhh", "U32"] |
| }, |
| { |
| "intrinsic": "V_vandor_VQR{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vandqrt.acc{0.width_suffix}", |
| "ret": "u8", |
| "args": ["0", "u32hhh", "U32"] |
| }, |
| { |
| "intrinsic": "Q_vand_VR{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vandvrt{0.width_suffix}", |
| "ret": "u32hhh", |
| "args": ["u8", "U32"] |
| }, |
| { |
| "intrinsic": "Q_vandor_QVR{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vandvrt{0.width_suffix}", |
| "ret": "u32hhh", |
| "args": ["0", "u8", "U32"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vasl_V{1.data_type}R{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vasl{0.data_type}{0.width_suffix}", |
| "ret": "s(16-32)", |
| "args": ["0", "U32"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vasl_V{1.data_type}V{2.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vasl{0.data_type}v{0.width_suffix}", |
| "ret": "s(16-32)", |
| "args": ["0", "0"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vaslacc_V{1.data_type}V{2.data_type}R{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vasl{0.data_type}.acc{0.width_suffix}", |
| "ret": "s32", |
| "args": ["0", "0", "U32"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vasr_V{1.data_type}R{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vasr{0.data_type}{0.width_suffix}", |
| "ret": "s(16-32)", |
| "args": ["0", "U32"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vasr_V{1.data_type}V{2.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vasr{0.data_type}v{0.width_suffix}", |
| "ret": "s(16-32)", |
| "args": ["0", "0"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vasracc_V{1.data_type}V{2.data_type}R{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vasr{0.data_type}.acc{0.width_suffix}", |
| "ret": "s32", |
| "args": ["0", "0", "U32"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vasr_V{1.data_type}V{2.data_type}R{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vasr{0.data_type}{1.data_type}{0.width_suffix}", |
| "ret": "s16", |
| "args": ["0hw", "0hw", "U32"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vasr_V{1.data_type}V{2.data_type}R_sat{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vasr{1.data_type}{0.data_type_plain}sat{0.width_suffix}", |
| "ret": "i(8-16)", |
| "args": ["0hws", "0hws", "U32"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vasr_V{1.data_type}V{2.data_type}R_rnd_sat{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vasr{1.data_type}{0.data_type_plain}rndsat{0.width_suffix}", |
| "ret": "i(8-16)", |
| "args": ["0hws", "0hws", "U32"] |
| }, |
| { |
| "intrinsic": "V_equals_V{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vassign{0.width_suffix}", |
| "ret": "u32", |
| "args": ["0"] |
| }, |
| { |
| "intrinsic": "W_equals_W{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vassignp{0.widthd_suffix}", |
| "ret": "u32d", |
| "args": ["0"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vavg_V{1.data_type}V{2.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vavg{0.data_type}{0.width_suffix}", |
| "ret": "s(16-32)", |
| "args": ["0", "0"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vavg_V{1.data_type}V{2.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vavg{0.data_type}{0.width_suffix}", |
| "ret": "u(8-16)", |
| "args": ["0", "0"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vavg_V{1.data_type}V{2.data_type}_rnd{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vavgrnd{0.data_type}{0.width_suffix}", |
| "ret": "s(16-32)", |
| "args": ["0", "0"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vavg_V{1.data_type}V{2.data_type}_rnd{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vavgrnd{0.data_type}{0.width_suffix}", |
| "ret": "u(8-16)", |
| "args": ["0", "0"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vcl0_V{1.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vcl0{0.data_type_plain}{0.width_suffix}", |
| "ret": "u(16-32)", |
| "args": ["0"] |
| }, |
| { |
| "intrinsic": "W_vcombine_VV{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vcombine{0.widthd_suffix}", |
| "ret": "u8d", |
| "args": ["0h", "0h"] |
| }, |
| { |
| "intrinsic": "V_vzero{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vd0{0.width_suffix}", |
| "ret": "u32", |
| "args": [] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vdeal_V{1.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vdeal{1.data_type}{0.width_suffix}", |
| "ret": "s(8-16)", |
| "args": ["0"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vdeale_V{1.data_type}V{2.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vdeal{1.data_type}4w{0.width_suffix}", |
| "ret": "s8", |
| "args": ["0", "0"] |
| }, |
| { |
| "intrinsic": "W_vdeal_VVR{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vdealvdd{0.widthd_suffix}", |
| "ret": "u8d", |
| "args": ["0h", "0h", "U32"] |
| }, |
| { |
| "intrinsic": "V_vdelta_VV{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vdelta{0.width_suffix}", |
| "ret": "u8", |
| "args": ["0", "0"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vdmpy_V{1.data_type}Rb{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vdmpybus{0.width_suffix}", |
| "ret": "s16", |
| "args": ["u8", "U32"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vdmpyacc_V{1.data_type}V{2.data_type}Rb{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vdmpybus.acc{0.width_suffix}", |
| "ret": "s16", |
| "args": ["s16", "u8", "U32"] |
| }, |
| { |
| "intrinsic": "W{0.data_type}_vdmpy_W{1.data_type}Rb{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vdmpybus.dv{0.widthd_suffix}", |
| "ret": "s16d", |
| "args": ["u8d", "U32"] |
| }, |
| { |
| "intrinsic": "W{0.data_type}_vdmpyacc_W{1.data_type}W{2.data_type}Rb{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vdmpybus.dv.acc{0.widthd_suffix}", |
| "ret": "s16d", |
| "args": ["s16d", "u8d", "U32"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vdmpy_V{1.data_type}Rb{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vdmpyhb{0.width_suffix}", |
| "ret": "s32", |
| "args": ["s16", "U32"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vdmpyacc_V{1.data_type}V{2.data_type}Rb{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vdmpyhb.acc{0.width_suffix}", |
| "ret": "s32", |
| "args": ["s32", "s16", "U32"] |
| }, |
| { |
| "intrinsic": "W{0.data_type}_vdmpy_W{1.data_type}Rb{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vdmpyhb.dv{0.widthd_suffix}", |
| "ret": "s32d", |
| "args": ["s16d", "U32"] |
| }, |
| { |
| "intrinsic": "W{0.data_type}_vdmpyacc_W{1.data_type}W{2.data_type}Rb{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vdmpyhb.dv.acc{0.widthd_suffix}", |
| "ret": "s32d", |
| "args": ["s32d", "s16d", "U32"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vdmpy_W{1.data_type}Rh_sat{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vdmpyhisat{0.width_suffix}", |
| "ret": "s32", |
| "args": ["0d", "U32"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vdmpy_V{1.data_type}Rh_sat{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vdmpyhsat{0.width_suffix}", |
| "ret": "s32", |
| "args": ["s16", "U32"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vdmpy_W{1.data_type}Ruh_sat{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vdmpyhsuisat{0.width_suffix}", |
| "ret": "s32", |
| "args": ["s16d", "U32"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vdmpy_V{1.data_type}Ruh_sat{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vdmpyhsusat{0.width_suffix}", |
| "ret": "s32", |
| "args": ["s16", "U32"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vdmpy_V{1.data_type}V{2.data_type}_sat{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vdmpyhvsat{0.width_suffix}", |
| "ret": "s32", |
| "args": ["s16", "s16"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vdmpyacc_V{1.data_type}W{2.data_type}Rh_sat{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vdmpyhisat_acc{0.width_suffix}", |
| "ret": "s32", |
| "args": ["0", "0d", "U32"] |
| }, |
| { |
| "intrinsic": "W{0.data_type}_vdsad_W{1.data_type}Ruh{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vdsaduh{0.widthd_suffix}", |
| "ret": "u32d", |
| "args": ["u16d", "U32"] |
| }, |
| { |
| "intrinsic": "W{0.data_type}_vdsadacc_W{1.data_type}W{2.data_type}Ruh{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vdsaduh.acc{0.widthd_suffix}", |
| "ret": "u32d", |
| "args": ["0", "u16d", "U32"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vdmpyacc_V{1.data_type}V{2.data_type}Rh_sat{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vdmpyhsat_acc{0.width_suffix}", |
| "ret": "s32", |
| "args": ["0", "s16", "U32"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vdmpyacc_V{1.data_type}W{2.data_type}Ruh_sat{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vdmpyhsuisat_acc{0.width_suffix}", |
| "ret": "s32", |
| "args": ["0", "s16d", "U32"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vdmpyacc_V{1.data_type}V{2.data_type}Ruh_sat{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vdmpyhsusat_acc{0.width_suffix}", |
| "ret": "s32", |
| "args": ["0", "s16", "U32"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vdmpyacc_V{1.data_type}V{2.data_type}V{3.data_type}_sat{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vdmpyhvsat_acc{0.width_suffix}", |
| "ret": "s32", |
| "args": ["0", "s16", "s16"] |
| }, |
| { |
| "intrinsic": "Q_vcmp_eq_V{1.data_type}V{2.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "veq{1.data_type}{0.width_suffix}", |
| "ret": "u32hhh", |
| "args": ["s(8-32)", "1"] |
| }, |
| { |
| "intrinsic": "Q_vcmp_eqand_QV{2.data_type}V{3.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "veq{2.data_type}.and{0.width_suffix}", |
| "ret": "u32hhh", |
| "args": ["0", "s(8-32)", "2"] |
| }, |
| { |
| "intrinsic": "Q_vcmp_eqor_QV{2.data_type}V{3.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "veq{2.data_type}.or{0.width_suffix}", |
| "ret": "u32hhh", |
| "args": ["0", "s(8-32)", "2"] |
| }, |
| { |
| "intrinsic": "Q_vcmp_eqxacc_QV{2.data_type}V{3.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "veq{2.data_type}.xor{0.width_suffix}", |
| "ret": "u32hhh", |
| "args": ["0", "s(8-32)", "2"] |
| }, |
| { |
| "intrinsic": "Q_vcmp_gt_V{1.data_type}V{2.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vgt{1.data_type}{0.width_suffix}", |
| "ret": "u32hhh", |
| "args": ["s(8-32)", "1"] |
| }, |
| { |
| "intrinsic": "Q_vcmp_gt_V{1.data_type}V{2.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vgt{1.data_type}{0.width_suffix}", |
| "ret": "u32hhh", |
| "args": ["u(8-16)", "1"] |
| }, |
| { |
| "intrinsic": "Q_vcmp_gtand_QV{2.data_type}V{3.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vgt{2.data_type}.and{0.width_suffix}", |
| "ret": "u32hhh", |
| "args": ["0", "s(8-32)", "2"] |
| }, |
| { |
| "intrinsic": "Q_vcmp_gtand_QV{2.data_type}V{3.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vgt{2.data_type}.and{0.width_suffix}", |
| "ret": "u32hhh", |
| "args": ["0", "u(8-16)", "2"] |
| }, |
| { |
| "intrinsic": "Q_vcmp_gtor_QV{2.data_type}V{3.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vgt{2.data_type}.or{0.width_suffix}", |
| "ret": "u32hhh", |
| "args": ["0", "s(8-32)", "2"] |
| }, |
| { |
| "intrinsic": "Q_vcmp_gtor_QV{2.data_type}V{3.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vgt{2.data_type}.or{0.width_suffix}", |
| "ret": "u32hhh", |
| "args": ["0", "u(8-16)", "2"] |
| }, |
| { |
| "intrinsic": "Q_vcmp_gtxacc_QV{2.data_type}V{3.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vgt{2.data_type}.xor{0.width_suffix}", |
| "ret": "u32hhh", |
| "args": ["0", "s(8-32)", "2"] |
| }, |
| { |
| "intrinsic": "Q_vcmp_gtxacc_QV{2.data_type}V{3.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vgt{2.data_type}.xor{0.width_suffix}", |
| "ret": "u32hhh", |
| "args": ["0", "u(8-16)", "2"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vinsert_V{1.data_type}R{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vinsertwr{0.width_suffix}", |
| "ret": "s32", |
| "args": ["S32"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vlsr_V{1.data_type}R{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vlsr{0.data_type_plain}{0.width_suffix}", |
| "ret": "u(16-32)", |
| "args": ["0", "U32"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vlsr_V{1.data_type}V{2.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vlsr{0.data_type}v{0.width_suffix}", |
| "ret": "s(16-32)", |
| "args": ["0", "0"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vlut32_V{1.data_type}V{2.data_type}R{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vlutvv{0.data_type}{0.width_suffix}", |
| "ret": "s8", |
| "args": ["0", "0", "U32"] |
| }, |
| { |
| "intrinsic": "W{0.data_type}_vlut16_V{1.data_type}V{2.data_type}R{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vlutvw{0.data_type}{0.widthd_suffix}", |
| "ret": "s16d", |
| "args": ["s8", "s16", "U32"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vlut32or_V{1.data_type}V{2.data_type}V{3.data_type}R{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vlutvv{0.data_type}.oracc{0.width_suffix}", |
| "ret": "s8", |
| "args": ["0", "0", "0", "U32"] |
| }, |
| { |
| "intrinsic": "W{0.data_type}_vlut16or_W{1.data_type}V{2.data_type}V{3.data_type}R{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vlutvw{0.data_type}.oracc{0.widthd_suffix}", |
| "ret": "s16d", |
| "args": ["0", "s8", "s16", "U32"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vmax_V{1.data_type}V{2.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vmax{0.data_type}{0.width_suffix}", |
| "ret": "s(16-32)", |
| "args": ["0", "0"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vmax_V{1.data_type}V{2.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vmax{0.data_type}{0.width_suffix}", |
| "ret": "u(8-16)", |
| "args": ["0", "0"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vmin_V{1.data_type}V{2.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vmin{0.data_type}{0.width_suffix}", |
| "ret": "s(16-32)", |
| "args": ["0", "0"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vmin_V{1.data_type}V{2.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vmin{0.data_type}{0.width_suffix}", |
| "ret": "u(8-16)", |
| "args": ["0", "0"] |
| }, |
| { |
| "intrinsic": "W{0.data_type}_vmpa_W{1.data_type}Rb{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vmpabus{0.widthd_suffix}", |
| "ret": "s16d", |
| "args": ["u8d", "U32"] |
| }, |
| { |
| "intrinsic": "W{0.data_type}_vmpaacc_W{1.data_type}W{2.data_type}Rb{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vmpabus.acc{0.widthd_suffix}", |
| "ret": "s16d", |
| "args": ["0", "u8d", "U32"] |
| }, |
| { |
| "intrinsic": "W{0.data_type}_vmpa_W{1.data_type}W{2.data_type}{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vmpab{1.kind}{2.kind}v{0.widthd_suffix}", |
| "ret": "s16d", |
| "args": ["u8d", "i8d"] |
| }, |
| { |
| "intrinsic": "W{0.data_type}_vmpa_W{1.data_type}Rb{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vmpahb{0.widthd_suffix}", |
| "ret": "s32d", |
| "args": ["s16d", "U32"] |
| }, |
| { |
| "intrinsic": "W{0.data_type}_vmpaacc_W{1.data_type}W{2.data_type}Rb{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vmpahb.acc{0.widthd_suffix}", |
| "ret": "s32d", |
| "args": ["0", "s16d", "U32"] |
| }, |
| { |
| "intrinsic": "W{0.data_type}_vmpy_V{1.data_type}V{2.data_type}{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vmpy{1.data_type}us{0.widthd_suffix}", |
| "ret": "s(16-32)d", |
| "args": ["0n", "0nu"] |
| }, |
| { |
| "intrinsic": "W{0.data_type}_vmpyacc_W{1.data_type}V{2.data_type}V{3.data_type}{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vmpy{2.data_type}us.acc{0.widthd_suffix}", |
| "ret": "s(16-32)d", |
| "args": ["0", "0n", "0nu"] |
| }, |
| { |
| "intrinsic": "W{0.data_type}_vmpy_V{1.data_type}V{2.data_type}{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vmpybusv{0.widthd_suffix}", |
| "ret": "s16d", |
| "args": ["u8", "s8"] |
| }, |
| { |
| "intrinsic": "W{0.data_type}_vmpyacc_W{1.data_type}V{2.data_type}V{3.data_type}{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vmpybusv.acc{0.widthd_suffix}", |
| "ret": "s16d", |
| "args": ["0", "0nu", "0n"] |
| }, |
| { |
| "intrinsic": "W{0.data_type}_vmpy_V{1.data_type}V{2.data_type}{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vmpy{1.data_type}v{0.widthd_suffix}", |
| "ret": "i(16-32)d", |
| "args": ["0n", "0n"] |
| }, |
| { |
| "intrinsic": "W{0.data_type}_vmpyacc_W{1.data_type}V{2.data_type}V{3.data_type}{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vmpy{2.data_type}v.acc{0.widthd_suffix}", |
| "ret": "i(16-32)d", |
| "args": ["0", "0n", "0n"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vmpye_V{1.data_type}V{2.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vmpyewuh{0.width_suffix}", |
| "ret": "s32", |
| "args": ["s32", "u16"] |
| }, |
| { |
| "intrinsic": "W{0.data_type}_vmpy_V{1.data_type}R{1.data_type}{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vmpy{1.data_type}{0.widthd_suffix}", |
| "ret": "i32d", |
| "args": ["0n", "U32"] |
| }, |
| { |
| "intrinsic": "W{0.data_type}_vmpyacc_W{1.data_type}V{2.data_type}R{2.data_type}_sat{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vmpy{2.data_type}sat.acc{0.widthd_suffix}", |
| "ret": "s32d", |
| "args": ["0", "0n", "U32"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vmpy_V{1.data_type}R{1.data_type}_s1_rnd_sat{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vmpy{1.data_type}srs{0.width_suffix}", |
| "ret": "s32", |
| "args": ["0nd", "U32"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vmpy_V{1.data_type}R{1.data_type}_s1_sat{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vmpy{1.data_type}ss{0.width_suffix}", |
| "ret": "s32", |
| "args": ["0nd", "U32"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vmpy_V{1.data_type}V{2.data_type}_s1_rnd_sat{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vmpy{1.data_type}vsrs{0.width_suffix}", |
| "ret": "s16", |
| "args": ["0", "0"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vmpyieo_V{1.data_type}V{2.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vmpyieo{1.data_type}{0.width_suffix}", |
| "ret": "s32", |
| "args": ["0nd", "0nd"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vmpyieacc_V{1.data_type}V{2.data_type}V{3.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vmpyie{2.data_type}{3.data_type}.acc{0.width_suffix}", |
| "ret": "s32", |
| "args": ["0", "0", "i16"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vmpyie_V{1.data_type}V{2.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vmpyie{1.data_type}{2.data_type}{0.width_suffix}", |
| "ret": "s32", |
| "args": ["0", "u16"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vmpyi_V{1.data_type}V{2.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vmpyi{1.data_type}{0.width_suffix}", |
| "ret": "s16", |
| "args": ["0", "0"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vmpyiacc_V{1.data_type}V{2.data_type}V{3.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vmpyi{1.data_type}.acc{0.width_suffix}", |
| "ret": "s16", |
| "args": ["0", "0", "0"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vmpyi_V{1.data_type}Rb{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vmpyi{1.data_type}b{0.width_suffix}", |
| "ret": "s(16-32)", |
| "args": ["0", "U32"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vmpyiacc_V{1.data_type}V{2.data_type}Rb{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vmpyi{1.data_type}b.acc{0.width_suffix}", |
| "ret": "s(16-32)", |
| "args": ["0", "0", "U32"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vmpyi_V{1.data_type}Rh{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vmpyi{1.data_type}h{0.width_suffix}", |
| "ret": "s32", |
| "args": ["0", "U32"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vmpyiacc_V{1.data_type}V{2.data_type}Rh{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vmpyi{1.data_type}h.acc{0.width_suffix}", |
| "ret": "s32", |
| "args": ["0", "0", "U32"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vmpyi_V{1.data_type}Rub{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vmpyi{1.data_type}ub{0.width_suffix}", |
| "ret": "s32", |
| "args": ["0", "U32"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vmpyiacc_V{1.data_type}V{2.data_type}Rub{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vmpyi{1.data_type}ub.acc{0.width_suffix}", |
| "ret": "s32", |
| "args": ["0", "0", "U32"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vmpyo_V{1.data_type}V{2.data_type}_s1_sat{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vmpyo{1.data_type}{2.data_type}{0.width_suffix}", |
| "ret": "s32", |
| "args": ["0", "0nd"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vmpyo_V{1.data_type}V{2.data_type}_s1_rnd_sat{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vmpyo{1.data_type}{2.data_type}.rnd{0.width_suffix}", |
| "ret": "s32", |
| "args": ["0", "0nd"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vmpyo_V{1.data_type}V{2.data_type}_s1_rnd_sat_shift{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vmpyo{1.data_type}{2.data_type}.rnd.sacc{0.width_suffix}", |
| "ret": "s32", |
| "args": ["0", "0nd"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vmpyo_V{1.data_type}V{2.data_type}_s1_sat_shift{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vmpyo{1.data_type}{2.data_type}.sacc{0.width_suffix}", |
| "ret": "s32", |
| "args": ["0", "0nd"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vmpyio_V{1.data_type}V{2.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vmpyio{1.data_type}{2.data_type}{0.width_suffix}", |
| "ret": "s32", |
| "args": ["0", "0nd"] |
| }, |
| { |
| "intrinsic": "W{0.data_type}_vmpy_V{1.data_type}R{1.data_type}{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vmpy{1.data_type}{0.widthd_suffix}", |
| "ret": "u16d", |
| "args": ["0n", "U32"] |
| }, |
| { |
| "intrinsic": "W{0.data_type}_vmpyacc_W{1.data_type}V{2.data_type}R{2.data_type}{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vmpy{2.data_type}.acc{0.widthd_suffix}", |
| "ret": "u(16-32)d", |
| "args": ["0", "0n", "U32"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vmux_QVV{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vmux{0.width_suffix}", |
| "ret": "u32", |
| "args": ["0hhh", "0", "0"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vnavg_V{1.data_type}V{2.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vnavg{0.data_type}{0.width_suffix}", |
| "ret": "i(16-32)", |
| "args": ["0", "0"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vnavg_V{1.data_type}V{2.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vnavg{0.data_type}{0.width_suffix}", |
| "ret": "u8", |
| "args": ["0", "0"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vnormamt_V{1.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vnormamt{0.data_type}{0.width_suffix}", |
| "ret": "s(16-32)", |
| "args": ["0"] |
| }, |
| { |
| "intrinsic": "V_vnot_VV{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vnot{0.width_suffix}", |
| "ret": "u16", |
| "args": ["0"] |
| }, |
| { |
| "intrinsic": "V_vor_VV{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vor{0.width_suffix}", |
| "ret": "u16", |
| "args": ["0", "0"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vpacke_V{1.data_type}V{2.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vpack{1.data_type}e{0.width_suffix}", |
| "ret": "s(8-16)", |
| "args": ["0hw", "0hw"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vpacko_V{1.data_type}V{2.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vpack{1.data_type}o{0.width_suffix}", |
| "ret": "s(8-16)", |
| "args": ["0hw", "0hw"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vpack_V{1.data_type}V{2.data_type}_sat{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vpack{1.data_type}{0.data_type}.sat{0.width_suffix}", |
| "ret": "i(8-16)", |
| "args": ["0hws", "0hws"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vpopcount_V{1.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vpopcount{0.data_type}{0.width_suffix}", |
| "ret": "s16", |
| "args": ["0"] |
| }, |
| { |
| "intrinsic": "V_vrdelta_VV{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vrdelta{0.width_suffix}", |
| "ret": "u8", |
| "args": ["0", "0"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vrmpy_V{1.data_type}Rb{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vrmpybus{0.width_suffix}", |
| "ret": "s32", |
| "args": ["u8", "U32"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vrmpyacc_V{1.data_type}V{2.data_type}Rb{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vrmpybus.acc{0.width_suffix}", |
| "ret": "s32", |
| "args": ["0", "u8", "U32"] |
| }, |
| { |
| "intrinsic": "W{0.data_type}_vrmpy_W{1.data_type}RbI{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vrmpybusi{0.widthd_suffix}", |
| "ret": "s32d", |
| "args": ["u8d", "U32"] |
| }, |
| { |
| "intrinsic": "W{0.data_type}_vrmpyacc_W{1.data_type}W{2.data_type}RbI{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vrmpybusi.acc{0.widthd_suffix}", |
| "ret": "s32d", |
| "args": ["0", "u8d", "U32"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vrmpy_V{1.data_type}V{2.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vrmpybusv{0.width_suffix}", |
| "ret": "s32", |
| "args": ["u8", "s8"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vrmpyacc_V{1.data_type}V{2.data_type}V{3.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vrmpybusv.acc{0.width_suffix}", |
| "ret": "s32", |
| "args": ["0", "u8", "s8"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vrmpy_V{1.data_type}V{2.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vrmpy{1.data_type}v{0.width_suffix}", |
| "ret": "i32", |
| "args": ["0nndd", "0nndd"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vrmpyacc_V{1.data_type}V{2.data_type}V{3.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vrmpy{1.data_type}v.acc{0.width_suffix}", |
| "ret": "i32", |
| "args": ["0", "0nndd", "0nndd"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vrmpy_V{1.data_type}Rub{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vrmpyub{0.width_suffix}", |
| "ret": "u32", |
| "args": ["u8", "U32"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vrmpyacc_V{1.data_type}V{2.data_type}Rub{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vrmpyub.acc{0.width_suffix}", |
| "ret": "u32", |
| "args": ["0", "u8", "U32"] |
| }, |
| { |
| "intrinsic": "W{0.data_type}_vrmpy_W{1.data_type}RubI{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vrmpyubi{0.widthd_suffix}", |
| "ret": "u32d", |
| "args": ["u8d", "U32"] |
| }, |
| { |
| "intrinsic": "W{0.data_type}_vrmpyacc_W{1.data_type}W{2.data_type}RubI{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vrmpyubi.acc{0.widthd_suffix}", |
| "ret": "u32d", |
| "args": ["0", "u8d", "U32"] |
| }, |
| { |
| "intrinsic": "V_vror_VR{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vror{0.width_suffix}", |
| "ret": "u8", |
| "args": ["0", "U32"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vround_V{1.data_type}V{2.data_type}_sat{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vround{1.data_type}{0.data_type}{0.width_suffix}", |
| "ret": "i(8-16)", |
| "args": ["0hws", "0hws"] |
| }, |
| { |
| "intrinsic": "W{0.data_type}_vrsad_W{1.data_type}RubI{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vrsadubi{0.widthd_suffix}", |
| "ret": "u32d", |
| "args": ["u8d", "U32"] |
| }, |
| { |
| "intrinsic": "W{0.data_type}_vrsadacc_W{1.data_type}W{2.data_type}RubI{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vrsadubi.acc{0.widthd_suffix}", |
| "ret": "u32d", |
| "args": ["0", "u8d", "U32"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vsat_V{1.data_type}V{2.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vsat{1.data_type}{0.data_type}{0.width_suffix}", |
| "ret": "u8", |
| "args": ["0hws", "0hws"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vsat_V{1.data_type}V{2.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vsat{1.data_type}{0.data_type}{0.width_suffix}", |
| "ret": "s16", |
| "args": ["0hw", "0hw"] |
| }, |
| { |
| "intrinsic": "W{0.data_type}_vsxt_V{1.data_type}{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vs{1.data_type}{0.widthd_suffix}", |
| "ret": "s(16-32)d", |
| "args": ["0n"] |
| }, |
| { |
| "intrinsic": "W{0.data_type}_vzxt_V{1.data_type}{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vz{1.data_type_plain}{0.widthd_suffix}", |
| "ret": "u(16-32)d", |
| "args": ["0n"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_condacc_QV{2.data_type}V{3.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vadd{0.data_type}q{0.width_suffix}", |
| "ret": "s(8-32)", |
| "args": ["u32hhh", "0", "0"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_condacc_QnV{2.data_type}V{3.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vadd{0.data_type}nq{0.width_suffix}", |
| "ret": "s(8-32)", |
| "args": ["u32hhh", "0", "0"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_condnac_QV{2.data_type}V{3.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vsub{0.data_type}q{0.width_suffix}", |
| "ret": "s(8-32)", |
| "args": ["u32hhh", "0", "0"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_condnac_QnV{2.data_type}V{3.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vsub{0.data_type}nq{0.width_suffix}", |
| "ret": "s(8-32)", |
| "args": ["u32hhh", "0", "0"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vshuffe_V{1.data_type}V{2.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vshufe{1.data_type}{0.width_suffix}", |
| "ret": "s16", |
| "args": ["0", "0"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vshuffo_V{1.data_type}V{2.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vshufo{1.data_type}{0.width_suffix}", |
| "ret": "s16", |
| "args": ["0", "0"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vshuff_V{1.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vshuff{1.data_type}{0.width_suffix}", |
| "ret": "s(8-16)", |
| "args": ["0"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vshuffe_V{1.data_type}V{2.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vshuffe{1.data_type}{0.width_suffix}", |
| "ret": "s8", |
| "args": ["0", "0"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vshuffo_V{1.data_type}V{2.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vshuffo{1.data_type}{0.width_suffix}", |
| "ret": "s8", |
| "args": ["0", "0"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vshuffoe_V{1.data_type}V{2.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vshuffoe{1.data_type}{0.width_suffix}", |
| "ret": "s(8-16)", |
| "args": ["0", "0"] |
| }, |
| { |
| "intrinsic": "W_vshuff_VVR{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vshufvvd{0.widthd_suffix}", |
| "ret": "u8d", |
| "args": ["0h", "0h", "U32"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vsub_V{1.data_type}V{2.data_type}{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vsub{0.data_type}{0.width_suffix}", |
| "ret": "s(8-32)", |
| "args": ["0", "0"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vsub_V{1.data_type}V{2.data_type}_sat{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vsub{0.data_type}sat{0.width_suffix}", |
| "ret": "s(16-32)", |
| "args": ["0", "0"] |
| }, |
| { |
| "intrinsic": "V{0.data_type}_vsub_V{1.data_type}V{2.data_type}_sat{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vsub{0.data_type}sat{0.width_suffix}", |
| "ret": "u(8-16)", |
| "args": ["0", "0"] |
| }, |
| { |
| "intrinsic": "W{0.data_type}_vsub_W{1.data_type}W{2.data_type}{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vsub{0.data_type}.dv{0.widthd_suffix}", |
| "ret": "s(8-32)d", |
| "args": ["0", "0"] |
| }, |
| { |
| "intrinsic": "W{0.data_type}_vsub_W{1.data_type}W{2.data_type}_sat{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vsub{0.data_type}sat.dv{0.widthd_suffix}", |
| "ret": "s(16-32)d", |
| "args": ["0", "0"] |
| }, |
| { |
| "intrinsic": "W{0.data_type}_vsub_W{1.data_type}W{2.data_type}_sat{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vsub{0.data_type}sat.dv{0.widthd_suffix}", |
| "ret": "u(8-16)d", |
| "args": ["0", "0"] |
| }, |
| { |
| "intrinsic": "W_vswap_QVV{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vswap{0.widthd_suffix}", |
| "ret": "u8d", |
| "args": ["u32hhh", "0h", "0h"] |
| }, |
| { |
| "intrinsic": "W{0.data_type}_vtmpy_W{1.data_type}Rb{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vtmpyb{0.widthd_suffix}", |
| "ret": "s16d", |
| "args": ["0nd", "U32"] |
| }, |
| { |
| "intrinsic": "W{0.data_type}_vtmpyacc_W{1.data_type}W{2.data_type}Rb{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vtmpyb.acc{0.widthd_suffix}", |
| "ret": "s16d", |
| "args": ["0", "0nd", "U32"] |
| }, |
| { |
| "intrinsic": "W{0.data_type}_vtmpy_W{1.data_type}Rb{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vtmpybus{0.widthd_suffix}", |
| "ret": "s16d", |
| "args": ["u8d", "U32"] |
| }, |
| { |
| "intrinsic": "W{0.data_type}_vtmpyacc_W{1.data_type}W{2.data_type}Rb{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vtmpybus.acc{0.widthd_suffix}", |
| "ret": "s16d", |
| "args": ["0", "u8d", "U32"] |
| }, |
| { |
| "intrinsic": "W{0.data_type}_vtmpy_W{1.data_type}Rb{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vtmpyhb{0.widthd_suffix}", |
| "ret": "s32d", |
| "args": ["0nd", "U32"] |
| }, |
| { |
| "intrinsic": "W{0.data_type}_vunpack_V{1.data_type}{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vunpack{1.data_type}{0.widthd_suffix}", |
| "ret": "i(16-32)d", |
| "args": ["0n"] |
| }, |
| { |
| "intrinsic": "W{0.data_type}_vunpackoor_W{1.data_type}V{2.data_type}{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vunpacko{2.data_type}{0.widthd_suffix}", |
| "ret": "s(16-32)d", |
| "args": ["0", "0n"] |
| }, |
| { |
| "intrinsic": "W{0.data_type}_vtmpyacc_W{1.data_type}W{2.data_type}Rb{0.widthd_b}", |
| "width": [512, 1024], |
| "llvm": "vtmpyhb.acc{0.widthd_suffix}", |
| "ret": "s32d", |
| "args": ["0", "0nd", "U32"] |
| }, |
| { |
| "intrinsic": "V_vxor_VV{0.width_b}", |
| "width": [512, 1024], |
| "llvm": "vxor{0.width_suffix}", |
| "ret": "u16", |
| "args": ["0", "0"] |
| } |
| ] |
| } |