diff options
| author | Michael Wu <mwu.code@gmail.com> | 2017-04-18 16:13:10 -0400 |
|---|---|---|
| committer | Michael Wu <mwu.code@gmail.com> | 2017-05-07 15:07:36 -0400 |
| commit | cc4efd1370e2be49abfda9cf90db4523f1043805 (patch) | |
| tree | 54a4a651abfd36fab06c78ec7cd3fe788c08b65f /src/etc | |
| parent | 8d19877ecea0cd22b7f5feaac5fb549f38aa3f71 (diff) | |
Add support for Hexagon v60 HVX intrinsics
Diffstat (limited to 'src/etc')
| -rw-r--r-- | src/etc/platform-intrinsics/hexagon/hvx_v60.json | 1326 |
1 files changed, 1326 insertions, 0 deletions
diff --git a/src/etc/platform-intrinsics/hexagon/hvx_v60.json b/src/etc/platform-intrinsics/hexagon/hvx_v60.json new file mode 100644 index 00000000000..a1897e6bf61 --- /dev/null +++ b/src/etc/platform-intrinsics/hexagon/hvx_v60.json @@ -0,0 +1,1326 @@ +{ + "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"] + } + ] +} |
