#ifdef GET_SVE_IMMEDIATE_CHECK
case SVE::BI__builtin_sve_svasrd_n_s16_m:
ImmChecks.push_back(std::make_tuple(2, 3, 16));
  break;
case SVE::BI__builtin_sve_svasrd_n_s16_x:
ImmChecks.push_back(std::make_tuple(2, 3, 16));
  break;
case SVE::BI__builtin_sve_svasrd_n_s16_z:
ImmChecks.push_back(std::make_tuple(2, 3, 16));
  break;
case SVE::BI__builtin_sve_svasrd_n_s32_m:
ImmChecks.push_back(std::make_tuple(2, 3, 32));
  break;
case SVE::BI__builtin_sve_svasrd_n_s32_x:
ImmChecks.push_back(std::make_tuple(2, 3, 32));
  break;
case SVE::BI__builtin_sve_svasrd_n_s32_z:
ImmChecks.push_back(std::make_tuple(2, 3, 32));
  break;
case SVE::BI__builtin_sve_svasrd_n_s64_m:
ImmChecks.push_back(std::make_tuple(2, 3, 64));
  break;
case SVE::BI__builtin_sve_svasrd_n_s64_x:
ImmChecks.push_back(std::make_tuple(2, 3, 64));
  break;
case SVE::BI__builtin_sve_svasrd_n_s64_z:
ImmChecks.push_back(std::make_tuple(2, 3, 64));
  break;
case SVE::BI__builtin_sve_svasrd_n_s8_m:
ImmChecks.push_back(std::make_tuple(2, 3, 8));
  break;
case SVE::BI__builtin_sve_svasrd_n_s8_x:
ImmChecks.push_back(std::make_tuple(2, 3, 8));
  break;
case SVE::BI__builtin_sve_svasrd_n_s8_z:
ImmChecks.push_back(std::make_tuple(2, 3, 8));
  break;
case SVE::BI__builtin_sve_svbfdot_lane_f32:
ImmChecks.push_back(std::make_tuple(3, 15, 0));
  break;
case SVE::BI__builtin_sve_svbfmlalb_lane_f32:
ImmChecks.push_back(std::make_tuple(3, 6, 0));
  break;
case SVE::BI__builtin_sve_svbfmlalt_lane_f32:
ImmChecks.push_back(std::make_tuple(3, 6, 0));
  break;
case SVE::BI__builtin_sve_svbfmlslb_lane_f32:
ImmChecks.push_back(std::make_tuple(3, 6, 0));
  break;
case SVE::BI__builtin_sve_svbfmlslt_lane_f32:
ImmChecks.push_back(std::make_tuple(3, 6, 0));
  break;
case SVE::BI__builtin_sve_svcadd_f16_m:
ImmChecks.push_back(std::make_tuple(3, 10, 0));
  break;
case SVE::BI__builtin_sve_svcadd_f16_x:
ImmChecks.push_back(std::make_tuple(3, 10, 0));
  break;
case SVE::BI__builtin_sve_svcadd_f16_z:
ImmChecks.push_back(std::make_tuple(3, 10, 0));
  break;
case SVE::BI__builtin_sve_svcadd_f32_m:
ImmChecks.push_back(std::make_tuple(3, 10, 0));
  break;
case SVE::BI__builtin_sve_svcadd_f32_x:
ImmChecks.push_back(std::make_tuple(3, 10, 0));
  break;
case SVE::BI__builtin_sve_svcadd_f32_z:
ImmChecks.push_back(std::make_tuple(3, 10, 0));
  break;
case SVE::BI__builtin_sve_svcadd_f64_m:
ImmChecks.push_back(std::make_tuple(3, 10, 0));
  break;
case SVE::BI__builtin_sve_svcadd_f64_x:
ImmChecks.push_back(std::make_tuple(3, 10, 0));
  break;
case SVE::BI__builtin_sve_svcadd_f64_z:
ImmChecks.push_back(std::make_tuple(3, 10, 0));
  break;
case SVE::BI__builtin_sve_svcadd_s16:
ImmChecks.push_back(std::make_tuple(2, 10, 0));
  break;
case SVE::BI__builtin_sve_svcadd_s32:
ImmChecks.push_back(std::make_tuple(2, 10, 0));
  break;
case SVE::BI__builtin_sve_svcadd_s64:
ImmChecks.push_back(std::make_tuple(2, 10, 0));
  break;
case SVE::BI__builtin_sve_svcadd_s8:
ImmChecks.push_back(std::make_tuple(2, 10, 0));
  break;
case SVE::BI__builtin_sve_svcadd_u16:
ImmChecks.push_back(std::make_tuple(2, 10, 0));
  break;
case SVE::BI__builtin_sve_svcadd_u32:
ImmChecks.push_back(std::make_tuple(2, 10, 0));
  break;
case SVE::BI__builtin_sve_svcadd_u64:
ImmChecks.push_back(std::make_tuple(2, 10, 0));
  break;
case SVE::BI__builtin_sve_svcadd_u8:
ImmChecks.push_back(std::make_tuple(2, 10, 0));
  break;
case SVE::BI__builtin_sve_svcdot_lane_s32:
ImmChecks.push_back(std::make_tuple(4, 11, 0));
ImmChecks.push_back(std::make_tuple(3, 9, 8));
  break;
case SVE::BI__builtin_sve_svcdot_lane_s64:
ImmChecks.push_back(std::make_tuple(4, 11, 0));
ImmChecks.push_back(std::make_tuple(3, 9, 16));
  break;
case SVE::BI__builtin_sve_svcdot_s32:
ImmChecks.push_back(std::make_tuple(3, 11, 0));
  break;
case SVE::BI__builtin_sve_svcdot_s64:
ImmChecks.push_back(std::make_tuple(3, 11, 0));
  break;
case SVE::BI__builtin_sve_svcmla_f16_m:
ImmChecks.push_back(std::make_tuple(4, 11, 0));
  break;
case SVE::BI__builtin_sve_svcmla_f16_x:
ImmChecks.push_back(std::make_tuple(4, 11, 0));
  break;
case SVE::BI__builtin_sve_svcmla_f16_z:
ImmChecks.push_back(std::make_tuple(4, 11, 0));
  break;
case SVE::BI__builtin_sve_svcmla_f32_m:
ImmChecks.push_back(std::make_tuple(4, 11, 0));
  break;
case SVE::BI__builtin_sve_svcmla_f32_x:
ImmChecks.push_back(std::make_tuple(4, 11, 0));
  break;
case SVE::BI__builtin_sve_svcmla_f32_z:
ImmChecks.push_back(std::make_tuple(4, 11, 0));
  break;
case SVE::BI__builtin_sve_svcmla_f64_m:
ImmChecks.push_back(std::make_tuple(4, 11, 0));
  break;
case SVE::BI__builtin_sve_svcmla_f64_x:
ImmChecks.push_back(std::make_tuple(4, 11, 0));
  break;
case SVE::BI__builtin_sve_svcmla_f64_z:
ImmChecks.push_back(std::make_tuple(4, 11, 0));
  break;
case SVE::BI__builtin_sve_svcmla_lane_f16:
ImmChecks.push_back(std::make_tuple(3, 8, 16));
ImmChecks.push_back(std::make_tuple(4, 11, 0));
  break;
case SVE::BI__builtin_sve_svcmla_lane_f32:
ImmChecks.push_back(std::make_tuple(3, 8, 32));
ImmChecks.push_back(std::make_tuple(4, 11, 0));
  break;
case SVE::BI__builtin_sve_svcmla_lane_s16:
ImmChecks.push_back(std::make_tuple(3, 8, 16));
ImmChecks.push_back(std::make_tuple(4, 11, 0));
  break;
case SVE::BI__builtin_sve_svcmla_lane_s32:
ImmChecks.push_back(std::make_tuple(3, 8, 32));
ImmChecks.push_back(std::make_tuple(4, 11, 0));
  break;
case SVE::BI__builtin_sve_svcmla_lane_u16:
ImmChecks.push_back(std::make_tuple(3, 8, 16));
ImmChecks.push_back(std::make_tuple(4, 11, 0));
  break;
case SVE::BI__builtin_sve_svcmla_lane_u32:
ImmChecks.push_back(std::make_tuple(3, 8, 32));
ImmChecks.push_back(std::make_tuple(4, 11, 0));
  break;
case SVE::BI__builtin_sve_svcmla_s16:
ImmChecks.push_back(std::make_tuple(3, 11, 0));
  break;
case SVE::BI__builtin_sve_svcmla_s32:
ImmChecks.push_back(std::make_tuple(3, 11, 0));
  break;
case SVE::BI__builtin_sve_svcmla_s64:
ImmChecks.push_back(std::make_tuple(3, 11, 0));
  break;
case SVE::BI__builtin_sve_svcmla_s8:
ImmChecks.push_back(std::make_tuple(3, 11, 0));
  break;
case SVE::BI__builtin_sve_svcmla_u16:
ImmChecks.push_back(std::make_tuple(3, 11, 0));
  break;
case SVE::BI__builtin_sve_svcmla_u32:
ImmChecks.push_back(std::make_tuple(3, 11, 0));
  break;
case SVE::BI__builtin_sve_svcmla_u64:
ImmChecks.push_back(std::make_tuple(3, 11, 0));
  break;
case SVE::BI__builtin_sve_svcmla_u8:
ImmChecks.push_back(std::make_tuple(3, 11, 0));
  break;
case SVE::BI__builtin_sve_svcntb_pat:
ImmChecks.push_back(std::make_tuple(0, 0, 0));
  break;
case SVE::BI__builtin_sve_svcntd_pat:
ImmChecks.push_back(std::make_tuple(0, 0, 0));
  break;
case SVE::BI__builtin_sve_svcnth_pat:
ImmChecks.push_back(std::make_tuple(0, 0, 0));
  break;
case SVE::BI__builtin_sve_svcntp_c16:
ImmChecks.push_back(std::make_tuple(1, 19, 0));
  break;
case SVE::BI__builtin_sve_svcntp_c32:
ImmChecks.push_back(std::make_tuple(1, 19, 0));
  break;
case SVE::BI__builtin_sve_svcntp_c64:
ImmChecks.push_back(std::make_tuple(1, 19, 0));
  break;
case SVE::BI__builtin_sve_svcntp_c8:
ImmChecks.push_back(std::make_tuple(1, 19, 0));
  break;
case SVE::BI__builtin_sve_svcntw_pat:
ImmChecks.push_back(std::make_tuple(0, 0, 0));
  break;
case SVE::BI__builtin_sve_svdot_lane_f32_f16:
ImmChecks.push_back(std::make_tuple(3, 15, 0));
  break;
case SVE::BI__builtin_sve_svdot_lane_s32:
ImmChecks.push_back(std::make_tuple(3, 9, 8));
  break;
case SVE::BI__builtin_sve_svdot_lane_s32_s16:
ImmChecks.push_back(std::make_tuple(3, 15, 0));
  break;
case SVE::BI__builtin_sve_svdot_lane_s64:
ImmChecks.push_back(std::make_tuple(3, 9, 16));
  break;
case SVE::BI__builtin_sve_svdot_lane_u32:
ImmChecks.push_back(std::make_tuple(3, 9, 8));
  break;
case SVE::BI__builtin_sve_svdot_lane_u32_u16:
ImmChecks.push_back(std::make_tuple(3, 15, 0));
  break;
case SVE::BI__builtin_sve_svdot_lane_u64:
ImmChecks.push_back(std::make_tuple(3, 9, 16));
  break;
case SVE::BI__builtin_sve_svext_bf16:
ImmChecks.push_back(std::make_tuple(2, 2, 16));
  break;
case SVE::BI__builtin_sve_svext_f16:
ImmChecks.push_back(std::make_tuple(2, 2, 16));
  break;
case SVE::BI__builtin_sve_svext_f32:
ImmChecks.push_back(std::make_tuple(2, 2, 32));
  break;
case SVE::BI__builtin_sve_svext_f64:
ImmChecks.push_back(std::make_tuple(2, 2, 64));
  break;
case SVE::BI__builtin_sve_svext_s16:
ImmChecks.push_back(std::make_tuple(2, 2, 16));
  break;
case SVE::BI__builtin_sve_svext_s32:
ImmChecks.push_back(std::make_tuple(2, 2, 32));
  break;
case SVE::BI__builtin_sve_svext_s64:
ImmChecks.push_back(std::make_tuple(2, 2, 64));
  break;
case SVE::BI__builtin_sve_svext_s8:
ImmChecks.push_back(std::make_tuple(2, 2, 8));
  break;
case SVE::BI__builtin_sve_svext_u16:
ImmChecks.push_back(std::make_tuple(2, 2, 16));
  break;
case SVE::BI__builtin_sve_svext_u32:
ImmChecks.push_back(std::make_tuple(2, 2, 32));
  break;
case SVE::BI__builtin_sve_svext_u64:
ImmChecks.push_back(std::make_tuple(2, 2, 64));
  break;
case SVE::BI__builtin_sve_svext_u8:
ImmChecks.push_back(std::make_tuple(2, 2, 8));
  break;
case SVE::BI__builtin_sve_svextq_bf16:
ImmChecks.push_back(std::make_tuple(2, 17, 0));
  break;
case SVE::BI__builtin_sve_svextq_f16:
ImmChecks.push_back(std::make_tuple(2, 17, 0));
  break;
case SVE::BI__builtin_sve_svextq_f32:
ImmChecks.push_back(std::make_tuple(2, 17, 0));
  break;
case SVE::BI__builtin_sve_svextq_f64:
ImmChecks.push_back(std::make_tuple(2, 17, 0));
  break;
case SVE::BI__builtin_sve_svextq_s16:
ImmChecks.push_back(std::make_tuple(2, 17, 0));
  break;
case SVE::BI__builtin_sve_svextq_s32:
ImmChecks.push_back(std::make_tuple(2, 17, 0));
  break;
case SVE::BI__builtin_sve_svextq_s64:
ImmChecks.push_back(std::make_tuple(2, 17, 0));
  break;
case SVE::BI__builtin_sve_svextq_s8:
ImmChecks.push_back(std::make_tuple(2, 17, 0));
  break;
case SVE::BI__builtin_sve_svextq_u16:
ImmChecks.push_back(std::make_tuple(2, 17, 0));
  break;
case SVE::BI__builtin_sve_svextq_u32:
ImmChecks.push_back(std::make_tuple(2, 17, 0));
  break;
case SVE::BI__builtin_sve_svextq_u64:
ImmChecks.push_back(std::make_tuple(2, 17, 0));
  break;
case SVE::BI__builtin_sve_svextq_u8:
ImmChecks.push_back(std::make_tuple(2, 17, 0));
  break;
case SVE::BI__builtin_sve_svget2_b:
ImmChecks.push_back(std::make_tuple(1, 13, 0));
  break;
case SVE::BI__builtin_sve_svget2_bf16:
ImmChecks.push_back(std::make_tuple(1, 13, 0));
  break;
case SVE::BI__builtin_sve_svget2_f16:
ImmChecks.push_back(std::make_tuple(1, 13, 0));
  break;
case SVE::BI__builtin_sve_svget2_f32:
ImmChecks.push_back(std::make_tuple(1, 13, 0));
  break;
case SVE::BI__builtin_sve_svget2_f64:
ImmChecks.push_back(std::make_tuple(1, 13, 0));
  break;
case SVE::BI__builtin_sve_svget2_s16:
ImmChecks.push_back(std::make_tuple(1, 13, 0));
  break;
case SVE::BI__builtin_sve_svget2_s32:
ImmChecks.push_back(std::make_tuple(1, 13, 0));
  break;
case SVE::BI__builtin_sve_svget2_s64:
ImmChecks.push_back(std::make_tuple(1, 13, 0));
  break;
case SVE::BI__builtin_sve_svget2_s8:
ImmChecks.push_back(std::make_tuple(1, 13, 0));
  break;
case SVE::BI__builtin_sve_svget2_u16:
ImmChecks.push_back(std::make_tuple(1, 13, 0));
  break;
case SVE::BI__builtin_sve_svget2_u32:
ImmChecks.push_back(std::make_tuple(1, 13, 0));
  break;
case SVE::BI__builtin_sve_svget2_u64:
ImmChecks.push_back(std::make_tuple(1, 13, 0));
  break;
case SVE::BI__builtin_sve_svget2_u8:
ImmChecks.push_back(std::make_tuple(1, 13, 0));
  break;
case SVE::BI__builtin_sve_svget3_bf16:
ImmChecks.push_back(std::make_tuple(1, 14, 0));
  break;
case SVE::BI__builtin_sve_svget3_f16:
ImmChecks.push_back(std::make_tuple(1, 14, 0));
  break;
case SVE::BI__builtin_sve_svget3_f32:
ImmChecks.push_back(std::make_tuple(1, 14, 0));
  break;
case SVE::BI__builtin_sve_svget3_f64:
ImmChecks.push_back(std::make_tuple(1, 14, 0));
  break;
case SVE::BI__builtin_sve_svget3_s16:
ImmChecks.push_back(std::make_tuple(1, 14, 0));
  break;
case SVE::BI__builtin_sve_svget3_s32:
ImmChecks.push_back(std::make_tuple(1, 14, 0));
  break;
case SVE::BI__builtin_sve_svget3_s64:
ImmChecks.push_back(std::make_tuple(1, 14, 0));
  break;
case SVE::BI__builtin_sve_svget3_s8:
ImmChecks.push_back(std::make_tuple(1, 14, 0));
  break;
case SVE::BI__builtin_sve_svget3_u16:
ImmChecks.push_back(std::make_tuple(1, 14, 0));
  break;
case SVE::BI__builtin_sve_svget3_u32:
ImmChecks.push_back(std::make_tuple(1, 14, 0));
  break;
case SVE::BI__builtin_sve_svget3_u64:
ImmChecks.push_back(std::make_tuple(1, 14, 0));
  break;
case SVE::BI__builtin_sve_svget3_u8:
ImmChecks.push_back(std::make_tuple(1, 14, 0));
  break;
case SVE::BI__builtin_sve_svget4_b:
ImmChecks.push_back(std::make_tuple(1, 15, 0));
  break;
case SVE::BI__builtin_sve_svget4_bf16:
ImmChecks.push_back(std::make_tuple(1, 15, 0));
  break;
case SVE::BI__builtin_sve_svget4_f16:
ImmChecks.push_back(std::make_tuple(1, 15, 0));
  break;
case SVE::BI__builtin_sve_svget4_f32:
ImmChecks.push_back(std::make_tuple(1, 15, 0));
  break;
case SVE::BI__builtin_sve_svget4_f64:
ImmChecks.push_back(std::make_tuple(1, 15, 0));
  break;
case SVE::BI__builtin_sve_svget4_s16:
ImmChecks.push_back(std::make_tuple(1, 15, 0));
  break;
case SVE::BI__builtin_sve_svget4_s32:
ImmChecks.push_back(std::make_tuple(1, 15, 0));
  break;
case SVE::BI__builtin_sve_svget4_s64:
ImmChecks.push_back(std::make_tuple(1, 15, 0));
  break;
case SVE::BI__builtin_sve_svget4_s8:
ImmChecks.push_back(std::make_tuple(1, 15, 0));
  break;
case SVE::BI__builtin_sve_svget4_u16:
ImmChecks.push_back(std::make_tuple(1, 15, 0));
  break;
case SVE::BI__builtin_sve_svget4_u32:
ImmChecks.push_back(std::make_tuple(1, 15, 0));
  break;
case SVE::BI__builtin_sve_svget4_u64:
ImmChecks.push_back(std::make_tuple(1, 15, 0));
  break;
case SVE::BI__builtin_sve_svget4_u8:
ImmChecks.push_back(std::make_tuple(1, 15, 0));
  break;
case SVE::BI__builtin_sve_svmla_lane_bf16:
ImmChecks.push_back(std::make_tuple(3, 7, 16));
  break;
case SVE::BI__builtin_sve_svmla_lane_f16:
ImmChecks.push_back(std::make_tuple(3, 7, 16));
  break;
case SVE::BI__builtin_sve_svmla_lane_f32:
ImmChecks.push_back(std::make_tuple(3, 7, 32));
  break;
case SVE::BI__builtin_sve_svmla_lane_f64:
ImmChecks.push_back(std::make_tuple(3, 7, 64));
  break;
case SVE::BI__builtin_sve_svmla_lane_s16:
ImmChecks.push_back(std::make_tuple(3, 7, 16));
  break;
case SVE::BI__builtin_sve_svmla_lane_s32:
ImmChecks.push_back(std::make_tuple(3, 7, 32));
  break;
case SVE::BI__builtin_sve_svmla_lane_s64:
ImmChecks.push_back(std::make_tuple(3, 7, 64));
  break;
case SVE::BI__builtin_sve_svmla_lane_u16:
ImmChecks.push_back(std::make_tuple(3, 7, 16));
  break;
case SVE::BI__builtin_sve_svmla_lane_u32:
ImmChecks.push_back(std::make_tuple(3, 7, 32));
  break;
case SVE::BI__builtin_sve_svmla_lane_u64:
ImmChecks.push_back(std::make_tuple(3, 7, 64));
  break;
case SVE::BI__builtin_sve_svmlalb_lane_f32:
ImmChecks.push_back(std::make_tuple(3, 7, 16));
  break;
case SVE::BI__builtin_sve_svmlalb_lane_s32:
ImmChecks.push_back(std::make_tuple(3, 7, 16));
  break;
case SVE::BI__builtin_sve_svmlalb_lane_s64:
ImmChecks.push_back(std::make_tuple(3, 7, 32));
  break;
case SVE::BI__builtin_sve_svmlalb_lane_u32:
ImmChecks.push_back(std::make_tuple(3, 7, 16));
  break;
case SVE::BI__builtin_sve_svmlalb_lane_u64:
ImmChecks.push_back(std::make_tuple(3, 7, 32));
  break;
case SVE::BI__builtin_sve_svmlalt_lane_f32:
ImmChecks.push_back(std::make_tuple(3, 7, 16));
  break;
case SVE::BI__builtin_sve_svmlalt_lane_s32:
ImmChecks.push_back(std::make_tuple(3, 7, 16));
  break;
case SVE::BI__builtin_sve_svmlalt_lane_s64:
ImmChecks.push_back(std::make_tuple(3, 7, 32));
  break;
case SVE::BI__builtin_sve_svmlalt_lane_u32:
ImmChecks.push_back(std::make_tuple(3, 7, 16));
  break;
case SVE::BI__builtin_sve_svmlalt_lane_u64:
ImmChecks.push_back(std::make_tuple(3, 7, 32));
  break;
case SVE::BI__builtin_sve_svmls_lane_bf16:
ImmChecks.push_back(std::make_tuple(3, 7, 16));
  break;
case SVE::BI__builtin_sve_svmls_lane_f16:
ImmChecks.push_back(std::make_tuple(3, 7, 16));
  break;
case SVE::BI__builtin_sve_svmls_lane_f32:
ImmChecks.push_back(std::make_tuple(3, 7, 32));
  break;
case SVE::BI__builtin_sve_svmls_lane_f64:
ImmChecks.push_back(std::make_tuple(3, 7, 64));
  break;
case SVE::BI__builtin_sve_svmls_lane_s16:
ImmChecks.push_back(std::make_tuple(3, 7, 16));
  break;
case SVE::BI__builtin_sve_svmls_lane_s32:
ImmChecks.push_back(std::make_tuple(3, 7, 32));
  break;
case SVE::BI__builtin_sve_svmls_lane_s64:
ImmChecks.push_back(std::make_tuple(3, 7, 64));
  break;
case SVE::BI__builtin_sve_svmls_lane_u16:
ImmChecks.push_back(std::make_tuple(3, 7, 16));
  break;
case SVE::BI__builtin_sve_svmls_lane_u32:
ImmChecks.push_back(std::make_tuple(3, 7, 32));
  break;
case SVE::BI__builtin_sve_svmls_lane_u64:
ImmChecks.push_back(std::make_tuple(3, 7, 64));
  break;
case SVE::BI__builtin_sve_svmlslb_lane_f32:
ImmChecks.push_back(std::make_tuple(3, 7, 16));
  break;
case SVE::BI__builtin_sve_svmlslb_lane_s32:
ImmChecks.push_back(std::make_tuple(3, 7, 16));
  break;
case SVE::BI__builtin_sve_svmlslb_lane_s64:
ImmChecks.push_back(std::make_tuple(3, 7, 32));
  break;
case SVE::BI__builtin_sve_svmlslb_lane_u32:
ImmChecks.push_back(std::make_tuple(3, 7, 16));
  break;
case SVE::BI__builtin_sve_svmlslb_lane_u64:
ImmChecks.push_back(std::make_tuple(3, 7, 32));
  break;
case SVE::BI__builtin_sve_svmlslt_lane_f32:
ImmChecks.push_back(std::make_tuple(3, 7, 16));
  break;
case SVE::BI__builtin_sve_svmlslt_lane_s32:
ImmChecks.push_back(std::make_tuple(3, 7, 16));
  break;
case SVE::BI__builtin_sve_svmlslt_lane_s64:
ImmChecks.push_back(std::make_tuple(3, 7, 32));
  break;
case SVE::BI__builtin_sve_svmlslt_lane_u32:
ImmChecks.push_back(std::make_tuple(3, 7, 16));
  break;
case SVE::BI__builtin_sve_svmlslt_lane_u64:
ImmChecks.push_back(std::make_tuple(3, 7, 32));
  break;
case SVE::BI__builtin_sve_svmul_lane_bf16:
ImmChecks.push_back(std::make_tuple(2, 7, 16));
  break;
case SVE::BI__builtin_sve_svmul_lane_f16:
ImmChecks.push_back(std::make_tuple(2, 7, 16));
  break;
case SVE::BI__builtin_sve_svmul_lane_f32:
ImmChecks.push_back(std::make_tuple(2, 7, 32));
  break;
case SVE::BI__builtin_sve_svmul_lane_f64:
ImmChecks.push_back(std::make_tuple(2, 7, 64));
  break;
case SVE::BI__builtin_sve_svmul_lane_s16:
ImmChecks.push_back(std::make_tuple(2, 7, 16));
  break;
case SVE::BI__builtin_sve_svmul_lane_s32:
ImmChecks.push_back(std::make_tuple(2, 7, 32));
  break;
case SVE::BI__builtin_sve_svmul_lane_s64:
ImmChecks.push_back(std::make_tuple(2, 7, 64));
  break;
case SVE::BI__builtin_sve_svmul_lane_u16:
ImmChecks.push_back(std::make_tuple(2, 7, 16));
  break;
case SVE::BI__builtin_sve_svmul_lane_u32:
ImmChecks.push_back(std::make_tuple(2, 7, 32));
  break;
case SVE::BI__builtin_sve_svmul_lane_u64:
ImmChecks.push_back(std::make_tuple(2, 7, 64));
  break;
case SVE::BI__builtin_sve_svmullb_lane_s32:
ImmChecks.push_back(std::make_tuple(2, 7, 16));
  break;
case SVE::BI__builtin_sve_svmullb_lane_s64:
ImmChecks.push_back(std::make_tuple(2, 7, 32));
  break;
case SVE::BI__builtin_sve_svmullb_lane_u32:
ImmChecks.push_back(std::make_tuple(2, 7, 16));
  break;
case SVE::BI__builtin_sve_svmullb_lane_u64:
ImmChecks.push_back(std::make_tuple(2, 7, 32));
  break;
case SVE::BI__builtin_sve_svmullt_lane_s32:
ImmChecks.push_back(std::make_tuple(2, 7, 16));
  break;
case SVE::BI__builtin_sve_svmullt_lane_s64:
ImmChecks.push_back(std::make_tuple(2, 7, 32));
  break;
case SVE::BI__builtin_sve_svmullt_lane_u32:
ImmChecks.push_back(std::make_tuple(2, 7, 16));
  break;
case SVE::BI__builtin_sve_svmullt_lane_u64:
ImmChecks.push_back(std::make_tuple(2, 7, 32));
  break;
case SVE::BI__builtin_sve_svpext_lane_c16:
ImmChecks.push_back(std::make_tuple(1, 15, 0));
  break;
case SVE::BI__builtin_sve_svpext_lane_c16_x2:
ImmChecks.push_back(std::make_tuple(1, 13, 0));
  break;
case SVE::BI__builtin_sve_svpext_lane_c32:
ImmChecks.push_back(std::make_tuple(1, 15, 0));
  break;
case SVE::BI__builtin_sve_svpext_lane_c32_x2:
ImmChecks.push_back(std::make_tuple(1, 13, 0));
  break;
case SVE::BI__builtin_sve_svpext_lane_c64:
ImmChecks.push_back(std::make_tuple(1, 15, 0));
  break;
case SVE::BI__builtin_sve_svpext_lane_c64_x2:
ImmChecks.push_back(std::make_tuple(1, 13, 0));
  break;
case SVE::BI__builtin_sve_svpext_lane_c8:
ImmChecks.push_back(std::make_tuple(1, 15, 0));
  break;
case SVE::BI__builtin_sve_svpext_lane_c8_x2:
ImmChecks.push_back(std::make_tuple(1, 13, 0));
  break;
case SVE::BI__builtin_sve_svpmov_lane_s16:
ImmChecks.push_back(std::make_tuple(1, 13, 0));
  break;
case SVE::BI__builtin_sve_svpmov_lane_s16_m:
ImmChecks.push_back(std::make_tuple(2, 20, 0));
  break;
case SVE::BI__builtin_sve_svpmov_lane_s32:
ImmChecks.push_back(std::make_tuple(1, 15, 0));
  break;
case SVE::BI__builtin_sve_svpmov_lane_s32_m:
ImmChecks.push_back(std::make_tuple(2, 21, 0));
  break;
case SVE::BI__builtin_sve_svpmov_lane_s64:
ImmChecks.push_back(std::make_tuple(1, 6, 0));
  break;
case SVE::BI__builtin_sve_svpmov_lane_s64_m:
ImmChecks.push_back(std::make_tuple(2, 22, 0));
  break;
case SVE::BI__builtin_sve_svpmov_lane_s8:
ImmChecks.push_back(std::make_tuple(1, 16, 0));
  break;
case SVE::BI__builtin_sve_svpmov_lane_u16:
ImmChecks.push_back(std::make_tuple(1, 13, 0));
  break;
case SVE::BI__builtin_sve_svpmov_lane_u16_m:
ImmChecks.push_back(std::make_tuple(2, 20, 0));
  break;
case SVE::BI__builtin_sve_svpmov_lane_u32:
ImmChecks.push_back(std::make_tuple(1, 15, 0));
  break;
case SVE::BI__builtin_sve_svpmov_lane_u32_m:
ImmChecks.push_back(std::make_tuple(2, 21, 0));
  break;
case SVE::BI__builtin_sve_svpmov_lane_u64:
ImmChecks.push_back(std::make_tuple(1, 6, 0));
  break;
case SVE::BI__builtin_sve_svpmov_lane_u64_m:
ImmChecks.push_back(std::make_tuple(2, 22, 0));
  break;
case SVE::BI__builtin_sve_svpmov_lane_u8:
ImmChecks.push_back(std::make_tuple(1, 16, 0));
  break;
case SVE::BI__builtin_sve_svprfb:
ImmChecks.push_back(std::make_tuple(2, 12, 0));
  break;
case SVE::BI__builtin_sve_svprfb_gather_s32offset:
ImmChecks.push_back(std::make_tuple(3, 12, 0));
  break;
case SVE::BI__builtin_sve_svprfb_gather_s64offset:
ImmChecks.push_back(std::make_tuple(3, 12, 0));
  break;
case SVE::BI__builtin_sve_svprfb_gather_u32base:
ImmChecks.push_back(std::make_tuple(2, 12, 0));
  break;
case SVE::BI__builtin_sve_svprfb_gather_u32base_offset:
ImmChecks.push_back(std::make_tuple(3, 12, 0));
  break;
case SVE::BI__builtin_sve_svprfb_gather_u32offset:
ImmChecks.push_back(std::make_tuple(3, 12, 0));
  break;
case SVE::BI__builtin_sve_svprfb_gather_u64base:
ImmChecks.push_back(std::make_tuple(2, 12, 0));
  break;
case SVE::BI__builtin_sve_svprfb_gather_u64base_offset:
ImmChecks.push_back(std::make_tuple(3, 12, 0));
  break;
case SVE::BI__builtin_sve_svprfb_gather_u64offset:
ImmChecks.push_back(std::make_tuple(3, 12, 0));
  break;
case SVE::BI__builtin_sve_svprfb_vnum:
ImmChecks.push_back(std::make_tuple(3, 12, 0));
  break;
case SVE::BI__builtin_sve_svprfd:
ImmChecks.push_back(std::make_tuple(2, 12, 0));
  break;
case SVE::BI__builtin_sve_svprfd_gather_s32index:
ImmChecks.push_back(std::make_tuple(3, 12, 0));
  break;
case SVE::BI__builtin_sve_svprfd_gather_s64index:
ImmChecks.push_back(std::make_tuple(3, 12, 0));
  break;
case SVE::BI__builtin_sve_svprfd_gather_u32base:
ImmChecks.push_back(std::make_tuple(2, 12, 0));
  break;
case SVE::BI__builtin_sve_svprfd_gather_u32base_index:
ImmChecks.push_back(std::make_tuple(3, 12, 0));
  break;
case SVE::BI__builtin_sve_svprfd_gather_u32index:
ImmChecks.push_back(std::make_tuple(3, 12, 0));
  break;
case SVE::BI__builtin_sve_svprfd_gather_u64base:
ImmChecks.push_back(std::make_tuple(2, 12, 0));
  break;
case SVE::BI__builtin_sve_svprfd_gather_u64base_index:
ImmChecks.push_back(std::make_tuple(3, 12, 0));
  break;
case SVE::BI__builtin_sve_svprfd_gather_u64index:
ImmChecks.push_back(std::make_tuple(3, 12, 0));
  break;
case SVE::BI__builtin_sve_svprfd_vnum:
ImmChecks.push_back(std::make_tuple(3, 12, 0));
  break;
case SVE::BI__builtin_sve_svprfh:
ImmChecks.push_back(std::make_tuple(2, 12, 0));
  break;
case SVE::BI__builtin_sve_svprfh_gather_s32index:
ImmChecks.push_back(std::make_tuple(3, 12, 0));
  break;
case SVE::BI__builtin_sve_svprfh_gather_s64index:
ImmChecks.push_back(std::make_tuple(3, 12, 0));
  break;
case SVE::BI__builtin_sve_svprfh_gather_u32base:
ImmChecks.push_back(std::make_tuple(2, 12, 0));
  break;
case SVE::BI__builtin_sve_svprfh_gather_u32base_index:
ImmChecks.push_back(std::make_tuple(3, 12, 0));
  break;
case SVE::BI__builtin_sve_svprfh_gather_u32index:
ImmChecks.push_back(std::make_tuple(3, 12, 0));
  break;
case SVE::BI__builtin_sve_svprfh_gather_u64base:
ImmChecks.push_back(std::make_tuple(2, 12, 0));
  break;
case SVE::BI__builtin_sve_svprfh_gather_u64base_index:
ImmChecks.push_back(std::make_tuple(3, 12, 0));
  break;
case SVE::BI__builtin_sve_svprfh_gather_u64index:
ImmChecks.push_back(std::make_tuple(3, 12, 0));
  break;
case SVE::BI__builtin_sve_svprfh_vnum:
ImmChecks.push_back(std::make_tuple(3, 12, 0));
  break;
case SVE::BI__builtin_sve_svprfw:
ImmChecks.push_back(std::make_tuple(2, 12, 0));
  break;
case SVE::BI__builtin_sve_svprfw_gather_s32index:
ImmChecks.push_back(std::make_tuple(3, 12, 0));
  break;
case SVE::BI__builtin_sve_svprfw_gather_s64index:
ImmChecks.push_back(std::make_tuple(3, 12, 0));
  break;
case SVE::BI__builtin_sve_svprfw_gather_u32base:
ImmChecks.push_back(std::make_tuple(2, 12, 0));
  break;
case SVE::BI__builtin_sve_svprfw_gather_u32base_index:
ImmChecks.push_back(std::make_tuple(3, 12, 0));
  break;
case SVE::BI__builtin_sve_svprfw_gather_u32index:
ImmChecks.push_back(std::make_tuple(3, 12, 0));
  break;
case SVE::BI__builtin_sve_svprfw_gather_u64base:
ImmChecks.push_back(std::make_tuple(2, 12, 0));
  break;
case SVE::BI__builtin_sve_svprfw_gather_u64base_index:
ImmChecks.push_back(std::make_tuple(3, 12, 0));
  break;
case SVE::BI__builtin_sve_svprfw_gather_u64index:
ImmChecks.push_back(std::make_tuple(3, 12, 0));
  break;
case SVE::BI__builtin_sve_svprfw_vnum:
ImmChecks.push_back(std::make_tuple(3, 12, 0));
  break;
case SVE::BI__builtin_sve_svptrue_pat_b16:
ImmChecks.push_back(std::make_tuple(0, 0, 0));
  break;
case SVE::BI__builtin_sve_svptrue_pat_b32:
ImmChecks.push_back(std::make_tuple(0, 0, 0));
  break;
case SVE::BI__builtin_sve_svptrue_pat_b64:
ImmChecks.push_back(std::make_tuple(0, 0, 0));
  break;
case SVE::BI__builtin_sve_svptrue_pat_b8:
ImmChecks.push_back(std::make_tuple(0, 0, 0));
  break;
case SVE::BI__builtin_sve_svqcadd_s16:
ImmChecks.push_back(std::make_tuple(2, 10, 0));
  break;
case SVE::BI__builtin_sve_svqcadd_s32:
ImmChecks.push_back(std::make_tuple(2, 10, 0));
  break;
case SVE::BI__builtin_sve_svqcadd_s64:
ImmChecks.push_back(std::make_tuple(2, 10, 0));
  break;
case SVE::BI__builtin_sve_svqcadd_s8:
ImmChecks.push_back(std::make_tuple(2, 10, 0));
  break;
case SVE::BI__builtin_sve_svqdecb_n_s32:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqdecb_n_s64:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqdecb_n_u32:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqdecb_n_u64:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqdecb_pat_n_s32:
ImmChecks.push_back(std::make_tuple(2, 1, 0));
ImmChecks.push_back(std::make_tuple(1, 0, 0));
  break;
case SVE::BI__builtin_sve_svqdecb_pat_n_s64:
ImmChecks.push_back(std::make_tuple(2, 1, 0));
ImmChecks.push_back(std::make_tuple(1, 0, 0));
  break;
case SVE::BI__builtin_sve_svqdecb_pat_n_u32:
ImmChecks.push_back(std::make_tuple(2, 1, 0));
ImmChecks.push_back(std::make_tuple(1, 0, 0));
  break;
case SVE::BI__builtin_sve_svqdecb_pat_n_u64:
ImmChecks.push_back(std::make_tuple(2, 1, 0));
ImmChecks.push_back(std::make_tuple(1, 0, 0));
  break;
case SVE::BI__builtin_sve_svqdecd_n_s32:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqdecd_n_s64:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqdecd_n_u32:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqdecd_n_u64:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqdecd_pat_n_s32:
ImmChecks.push_back(std::make_tuple(2, 1, 0));
ImmChecks.push_back(std::make_tuple(1, 0, 0));
  break;
case SVE::BI__builtin_sve_svqdecd_pat_n_s64:
ImmChecks.push_back(std::make_tuple(2, 1, 0));
ImmChecks.push_back(std::make_tuple(1, 0, 0));
  break;
case SVE::BI__builtin_sve_svqdecd_pat_n_u32:
ImmChecks.push_back(std::make_tuple(2, 1, 0));
ImmChecks.push_back(std::make_tuple(1, 0, 0));
  break;
case SVE::BI__builtin_sve_svqdecd_pat_n_u64:
ImmChecks.push_back(std::make_tuple(2, 1, 0));
ImmChecks.push_back(std::make_tuple(1, 0, 0));
  break;
case SVE::BI__builtin_sve_svqdecd_pat_s64:
ImmChecks.push_back(std::make_tuple(2, 1, 0));
ImmChecks.push_back(std::make_tuple(1, 0, 0));
  break;
case SVE::BI__builtin_sve_svqdecd_pat_u64:
ImmChecks.push_back(std::make_tuple(2, 1, 0));
ImmChecks.push_back(std::make_tuple(1, 0, 0));
  break;
case SVE::BI__builtin_sve_svqdecd_s64:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqdecd_u64:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqdech_n_s32:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqdech_n_s64:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqdech_n_u32:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqdech_n_u64:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqdech_pat_n_s32:
ImmChecks.push_back(std::make_tuple(2, 1, 0));
ImmChecks.push_back(std::make_tuple(1, 0, 0));
  break;
case SVE::BI__builtin_sve_svqdech_pat_n_s64:
ImmChecks.push_back(std::make_tuple(2, 1, 0));
ImmChecks.push_back(std::make_tuple(1, 0, 0));
  break;
case SVE::BI__builtin_sve_svqdech_pat_n_u32:
ImmChecks.push_back(std::make_tuple(2, 1, 0));
ImmChecks.push_back(std::make_tuple(1, 0, 0));
  break;
case SVE::BI__builtin_sve_svqdech_pat_n_u64:
ImmChecks.push_back(std::make_tuple(2, 1, 0));
ImmChecks.push_back(std::make_tuple(1, 0, 0));
  break;
case SVE::BI__builtin_sve_svqdech_pat_s16:
ImmChecks.push_back(std::make_tuple(2, 1, 0));
ImmChecks.push_back(std::make_tuple(1, 0, 0));
  break;
case SVE::BI__builtin_sve_svqdech_pat_u16:
ImmChecks.push_back(std::make_tuple(2, 1, 0));
ImmChecks.push_back(std::make_tuple(1, 0, 0));
  break;
case SVE::BI__builtin_sve_svqdech_s16:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqdech_u16:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqdecw_n_s32:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqdecw_n_s64:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqdecw_n_u32:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqdecw_n_u64:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqdecw_pat_n_s32:
ImmChecks.push_back(std::make_tuple(2, 1, 0));
ImmChecks.push_back(std::make_tuple(1, 0, 0));
  break;
case SVE::BI__builtin_sve_svqdecw_pat_n_s64:
ImmChecks.push_back(std::make_tuple(2, 1, 0));
ImmChecks.push_back(std::make_tuple(1, 0, 0));
  break;
case SVE::BI__builtin_sve_svqdecw_pat_n_u32:
ImmChecks.push_back(std::make_tuple(2, 1, 0));
ImmChecks.push_back(std::make_tuple(1, 0, 0));
  break;
case SVE::BI__builtin_sve_svqdecw_pat_n_u64:
ImmChecks.push_back(std::make_tuple(2, 1, 0));
ImmChecks.push_back(std::make_tuple(1, 0, 0));
  break;
case SVE::BI__builtin_sve_svqdecw_pat_s32:
ImmChecks.push_back(std::make_tuple(2, 1, 0));
ImmChecks.push_back(std::make_tuple(1, 0, 0));
  break;
case SVE::BI__builtin_sve_svqdecw_pat_u32:
ImmChecks.push_back(std::make_tuple(2, 1, 0));
ImmChecks.push_back(std::make_tuple(1, 0, 0));
  break;
case SVE::BI__builtin_sve_svqdecw_s32:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqdecw_u32:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqdmlalb_lane_s32:
ImmChecks.push_back(std::make_tuple(3, 7, 16));
  break;
case SVE::BI__builtin_sve_svqdmlalb_lane_s64:
ImmChecks.push_back(std::make_tuple(3, 7, 32));
  break;
case SVE::BI__builtin_sve_svqdmlalt_lane_s32:
ImmChecks.push_back(std::make_tuple(3, 7, 16));
  break;
case SVE::BI__builtin_sve_svqdmlalt_lane_s64:
ImmChecks.push_back(std::make_tuple(3, 7, 32));
  break;
case SVE::BI__builtin_sve_svqdmlslb_lane_s32:
ImmChecks.push_back(std::make_tuple(3, 7, 16));
  break;
case SVE::BI__builtin_sve_svqdmlslb_lane_s64:
ImmChecks.push_back(std::make_tuple(3, 7, 32));
  break;
case SVE::BI__builtin_sve_svqdmlslt_lane_s32:
ImmChecks.push_back(std::make_tuple(3, 7, 16));
  break;
case SVE::BI__builtin_sve_svqdmlslt_lane_s64:
ImmChecks.push_back(std::make_tuple(3, 7, 32));
  break;
case SVE::BI__builtin_sve_svqdmulh_lane_s16:
ImmChecks.push_back(std::make_tuple(2, 7, 16));
  break;
case SVE::BI__builtin_sve_svqdmulh_lane_s32:
ImmChecks.push_back(std::make_tuple(2, 7, 32));
  break;
case SVE::BI__builtin_sve_svqdmulh_lane_s64:
ImmChecks.push_back(std::make_tuple(2, 7, 64));
  break;
case SVE::BI__builtin_sve_svqdmullb_lane_s32:
ImmChecks.push_back(std::make_tuple(2, 7, 16));
  break;
case SVE::BI__builtin_sve_svqdmullb_lane_s64:
ImmChecks.push_back(std::make_tuple(2, 7, 32));
  break;
case SVE::BI__builtin_sve_svqdmullt_lane_s32:
ImmChecks.push_back(std::make_tuple(2, 7, 16));
  break;
case SVE::BI__builtin_sve_svqdmullt_lane_s64:
ImmChecks.push_back(std::make_tuple(2, 7, 32));
  break;
case SVE::BI__builtin_sve_svqincb_n_s32:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqincb_n_s64:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqincb_n_u32:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqincb_n_u64:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqincb_pat_n_s32:
ImmChecks.push_back(std::make_tuple(2, 1, 0));
ImmChecks.push_back(std::make_tuple(1, 0, 0));
  break;
case SVE::BI__builtin_sve_svqincb_pat_n_s64:
ImmChecks.push_back(std::make_tuple(2, 1, 0));
ImmChecks.push_back(std::make_tuple(1, 0, 0));
  break;
case SVE::BI__builtin_sve_svqincb_pat_n_u32:
ImmChecks.push_back(std::make_tuple(2, 1, 0));
ImmChecks.push_back(std::make_tuple(1, 0, 0));
  break;
case SVE::BI__builtin_sve_svqincb_pat_n_u64:
ImmChecks.push_back(std::make_tuple(2, 1, 0));
ImmChecks.push_back(std::make_tuple(1, 0, 0));
  break;
case SVE::BI__builtin_sve_svqincd_n_s32:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqincd_n_s64:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqincd_n_u32:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqincd_n_u64:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqincd_pat_n_s32:
ImmChecks.push_back(std::make_tuple(2, 1, 0));
ImmChecks.push_back(std::make_tuple(1, 0, 0));
  break;
case SVE::BI__builtin_sve_svqincd_pat_n_s64:
ImmChecks.push_back(std::make_tuple(2, 1, 0));
ImmChecks.push_back(std::make_tuple(1, 0, 0));
  break;
case SVE::BI__builtin_sve_svqincd_pat_n_u32:
ImmChecks.push_back(std::make_tuple(2, 1, 0));
ImmChecks.push_back(std::make_tuple(1, 0, 0));
  break;
case SVE::BI__builtin_sve_svqincd_pat_n_u64:
ImmChecks.push_back(std::make_tuple(2, 1, 0));
ImmChecks.push_back(std::make_tuple(1, 0, 0));
  break;
case SVE::BI__builtin_sve_svqincd_pat_s64:
ImmChecks.push_back(std::make_tuple(2, 1, 0));
ImmChecks.push_back(std::make_tuple(1, 0, 0));
  break;
case SVE::BI__builtin_sve_svqincd_pat_u64:
ImmChecks.push_back(std::make_tuple(2, 1, 0));
ImmChecks.push_back(std::make_tuple(1, 0, 0));
  break;
case SVE::BI__builtin_sve_svqincd_s64:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqincd_u64:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqinch_n_s32:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqinch_n_s64:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqinch_n_u32:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqinch_n_u64:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqinch_pat_n_s32:
ImmChecks.push_back(std::make_tuple(2, 1, 0));
ImmChecks.push_back(std::make_tuple(1, 0, 0));
  break;
case SVE::BI__builtin_sve_svqinch_pat_n_s64:
ImmChecks.push_back(std::make_tuple(2, 1, 0));
ImmChecks.push_back(std::make_tuple(1, 0, 0));
  break;
case SVE::BI__builtin_sve_svqinch_pat_n_u32:
ImmChecks.push_back(std::make_tuple(2, 1, 0));
ImmChecks.push_back(std::make_tuple(1, 0, 0));
  break;
case SVE::BI__builtin_sve_svqinch_pat_n_u64:
ImmChecks.push_back(std::make_tuple(2, 1, 0));
ImmChecks.push_back(std::make_tuple(1, 0, 0));
  break;
case SVE::BI__builtin_sve_svqinch_pat_s16:
ImmChecks.push_back(std::make_tuple(2, 1, 0));
ImmChecks.push_back(std::make_tuple(1, 0, 0));
  break;
case SVE::BI__builtin_sve_svqinch_pat_u16:
ImmChecks.push_back(std::make_tuple(2, 1, 0));
ImmChecks.push_back(std::make_tuple(1, 0, 0));
  break;
case SVE::BI__builtin_sve_svqinch_s16:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqinch_u16:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqincw_n_s32:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqincw_n_s64:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqincw_n_u32:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqincw_n_u64:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqincw_pat_n_s32:
ImmChecks.push_back(std::make_tuple(2, 1, 0));
ImmChecks.push_back(std::make_tuple(1, 0, 0));
  break;
case SVE::BI__builtin_sve_svqincw_pat_n_s64:
ImmChecks.push_back(std::make_tuple(2, 1, 0));
ImmChecks.push_back(std::make_tuple(1, 0, 0));
  break;
case SVE::BI__builtin_sve_svqincw_pat_n_u32:
ImmChecks.push_back(std::make_tuple(2, 1, 0));
ImmChecks.push_back(std::make_tuple(1, 0, 0));
  break;
case SVE::BI__builtin_sve_svqincw_pat_n_u64:
ImmChecks.push_back(std::make_tuple(2, 1, 0));
ImmChecks.push_back(std::make_tuple(1, 0, 0));
  break;
case SVE::BI__builtin_sve_svqincw_pat_s32:
ImmChecks.push_back(std::make_tuple(2, 1, 0));
ImmChecks.push_back(std::make_tuple(1, 0, 0));
  break;
case SVE::BI__builtin_sve_svqincw_pat_u32:
ImmChecks.push_back(std::make_tuple(2, 1, 0));
ImmChecks.push_back(std::make_tuple(1, 0, 0));
  break;
case SVE::BI__builtin_sve_svqincw_s32:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqincw_u32:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqrdcmlah_lane_s16:
ImmChecks.push_back(std::make_tuple(3, 8, 16));
ImmChecks.push_back(std::make_tuple(4, 11, 0));
  break;
case SVE::BI__builtin_sve_svqrdcmlah_lane_s32:
ImmChecks.push_back(std::make_tuple(3, 8, 32));
ImmChecks.push_back(std::make_tuple(4, 11, 0));
  break;
case SVE::BI__builtin_sve_svqrdcmlah_s16:
ImmChecks.push_back(std::make_tuple(3, 11, 0));
  break;
case SVE::BI__builtin_sve_svqrdcmlah_s32:
ImmChecks.push_back(std::make_tuple(3, 11, 0));
  break;
case SVE::BI__builtin_sve_svqrdcmlah_s64:
ImmChecks.push_back(std::make_tuple(3, 11, 0));
  break;
case SVE::BI__builtin_sve_svqrdcmlah_s8:
ImmChecks.push_back(std::make_tuple(3, 11, 0));
  break;
case SVE::BI__builtin_sve_svqrdmlah_lane_s16:
ImmChecks.push_back(std::make_tuple(3, 7, 16));
  break;
case SVE::BI__builtin_sve_svqrdmlah_lane_s32:
ImmChecks.push_back(std::make_tuple(3, 7, 32));
  break;
case SVE::BI__builtin_sve_svqrdmlah_lane_s64:
ImmChecks.push_back(std::make_tuple(3, 7, 64));
  break;
case SVE::BI__builtin_sve_svqrdmlsh_lane_s16:
ImmChecks.push_back(std::make_tuple(3, 7, 16));
  break;
case SVE::BI__builtin_sve_svqrdmlsh_lane_s32:
ImmChecks.push_back(std::make_tuple(3, 7, 32));
  break;
case SVE::BI__builtin_sve_svqrdmlsh_lane_s64:
ImmChecks.push_back(std::make_tuple(3, 7, 64));
  break;
case SVE::BI__builtin_sve_svqrdmulh_lane_s16:
ImmChecks.push_back(std::make_tuple(2, 7, 16));
  break;
case SVE::BI__builtin_sve_svqrdmulh_lane_s32:
ImmChecks.push_back(std::make_tuple(2, 7, 32));
  break;
case SVE::BI__builtin_sve_svqrdmulh_lane_s64:
ImmChecks.push_back(std::make_tuple(2, 7, 64));
  break;
case SVE::BI__builtin_sve_svqrshr_n_s16_s32_x2:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqrshr_n_s16_s64_x4:
ImmChecks.push_back(std::make_tuple(1, 3, 64));
  break;
case SVE::BI__builtin_sve_svqrshr_n_s8_s32_x4:
ImmChecks.push_back(std::make_tuple(1, 3, 32));
  break;
case SVE::BI__builtin_sve_svqrshr_n_u16_u32_x2:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqrshr_n_u16_u64_x4:
ImmChecks.push_back(std::make_tuple(1, 3, 64));
  break;
case SVE::BI__builtin_sve_svqrshr_n_u8_u32_x4:
ImmChecks.push_back(std::make_tuple(1, 3, 32));
  break;
case SVE::BI__builtin_sve_svqrshrn_n_s16_s32_x2:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqrshrn_n_s16_s64_x4:
ImmChecks.push_back(std::make_tuple(1, 3, 64));
  break;
case SVE::BI__builtin_sve_svqrshrn_n_s8_s32_x4:
ImmChecks.push_back(std::make_tuple(1, 3, 32));
  break;
case SVE::BI__builtin_sve_svqrshrn_n_u16_u32_x2:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqrshrn_n_u16_u64_x4:
ImmChecks.push_back(std::make_tuple(1, 3, 64));
  break;
case SVE::BI__builtin_sve_svqrshrn_n_u8_u32_x4:
ImmChecks.push_back(std::make_tuple(1, 3, 32));
  break;
case SVE::BI__builtin_sve_svqrshrnb_n_s16:
ImmChecks.push_back(std::make_tuple(1, 4, 16));
  break;
case SVE::BI__builtin_sve_svqrshrnb_n_s32:
ImmChecks.push_back(std::make_tuple(1, 4, 32));
  break;
case SVE::BI__builtin_sve_svqrshrnb_n_s64:
ImmChecks.push_back(std::make_tuple(1, 4, 64));
  break;
case SVE::BI__builtin_sve_svqrshrnb_n_u16:
ImmChecks.push_back(std::make_tuple(1, 4, 16));
  break;
case SVE::BI__builtin_sve_svqrshrnb_n_u32:
ImmChecks.push_back(std::make_tuple(1, 4, 32));
  break;
case SVE::BI__builtin_sve_svqrshrnb_n_u64:
ImmChecks.push_back(std::make_tuple(1, 4, 64));
  break;
case SVE::BI__builtin_sve_svqrshrnt_n_s16:
ImmChecks.push_back(std::make_tuple(2, 4, 16));
  break;
case SVE::BI__builtin_sve_svqrshrnt_n_s32:
ImmChecks.push_back(std::make_tuple(2, 4, 32));
  break;
case SVE::BI__builtin_sve_svqrshrnt_n_s64:
ImmChecks.push_back(std::make_tuple(2, 4, 64));
  break;
case SVE::BI__builtin_sve_svqrshrnt_n_u16:
ImmChecks.push_back(std::make_tuple(2, 4, 16));
  break;
case SVE::BI__builtin_sve_svqrshrnt_n_u32:
ImmChecks.push_back(std::make_tuple(2, 4, 32));
  break;
case SVE::BI__builtin_sve_svqrshrnt_n_u64:
ImmChecks.push_back(std::make_tuple(2, 4, 64));
  break;
case SVE::BI__builtin_sve_svqrshru_n_u16_s32_x2:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqrshru_n_u16_s64_x4:
ImmChecks.push_back(std::make_tuple(1, 3, 64));
  break;
case SVE::BI__builtin_sve_svqrshru_n_u8_s32_x4:
ImmChecks.push_back(std::make_tuple(1, 3, 32));
  break;
case SVE::BI__builtin_sve_svqrshrun_n_u16_s32_x2:
ImmChecks.push_back(std::make_tuple(1, 1, 0));
  break;
case SVE::BI__builtin_sve_svqrshrun_n_u16_s64_x4:
ImmChecks.push_back(std::make_tuple(1, 3, 64));
  break;
case SVE::BI__builtin_sve_svqrshrun_n_u8_s32_x4:
ImmChecks.push_back(std::make_tuple(1, 3, 32));
  break;
case SVE::BI__builtin_sve_svqrshrunb_n_s16:
ImmChecks.push_back(std::make_tuple(1, 4, 16));
  break;
case SVE::BI__builtin_sve_svqrshrunb_n_s32:
ImmChecks.push_back(std::make_tuple(1, 4, 32));
  break;
case SVE::BI__builtin_sve_svqrshrunb_n_s64:
ImmChecks.push_back(std::make_tuple(1, 4, 64));
  break;
case SVE::BI__builtin_sve_svqrshrunt_n_s16:
ImmChecks.push_back(std::make_tuple(2, 4, 16));
  break;
case SVE::BI__builtin_sve_svqrshrunt_n_s32:
ImmChecks.push_back(std::make_tuple(2, 4, 32));
  break;
case SVE::BI__builtin_sve_svqrshrunt_n_s64:
ImmChecks.push_back(std::make_tuple(2, 4, 64));
  break;
case SVE::BI__builtin_sve_svqshlu_n_s16_m:
ImmChecks.push_back(std::make_tuple(2, 5, 16));
  break;
case SVE::BI__builtin_sve_svqshlu_n_s16_x:
ImmChecks.push_back(std::make_tuple(2, 5, 16));
  break;
case SVE::BI__builtin_sve_svqshlu_n_s16_z:
ImmChecks.push_back(std::make_tuple(2, 5, 16));
  break;
case SVE::BI__builtin_sve_svqshlu_n_s32_m:
ImmChecks.push_back(std::make_tuple(2, 5, 32));
  break;
case SVE::BI__builtin_sve_svqshlu_n_s32_x:
ImmChecks.push_back(std::make_tuple(2, 5, 32));
  break;
case SVE::BI__builtin_sve_svqshlu_n_s32_z:
ImmChecks.push_back(std::make_tuple(2, 5, 32));
  break;
case SVE::BI__builtin_sve_svqshlu_n_s64_m:
ImmChecks.push_back(std::make_tuple(2, 5, 64));
  break;
case SVE::BI__builtin_sve_svqshlu_n_s64_x:
ImmChecks.push_back(std::make_tuple(2, 5, 64));
  break;
case SVE::BI__builtin_sve_svqshlu_n_s64_z:
ImmChecks.push_back(std::make_tuple(2, 5, 64));
  break;
case SVE::BI__builtin_sve_svqshlu_n_s8_m:
ImmChecks.push_back(std::make_tuple(2, 5, 8));
  break;
case SVE::BI__builtin_sve_svqshlu_n_s8_x:
ImmChecks.push_back(std::make_tuple(2, 5, 8));
  break;
case SVE::BI__builtin_sve_svqshlu_n_s8_z:
ImmChecks.push_back(std::make_tuple(2, 5, 8));
  break;
case SVE::BI__builtin_sve_svqshrnb_n_s16:
ImmChecks.push_back(std::make_tuple(1, 4, 16));
  break;
case SVE::BI__builtin_sve_svqshrnb_n_s32:
ImmChecks.push_back(std::make_tuple(1, 4, 32));
  break;
case SVE::BI__builtin_sve_svqshrnb_n_s64:
ImmChecks.push_back(std::make_tuple(1, 4, 64));
  break;
case SVE::BI__builtin_sve_svqshrnb_n_u16:
ImmChecks.push_back(std::make_tuple(1, 4, 16));
  break;
case SVE::BI__builtin_sve_svqshrnb_n_u32:
ImmChecks.push_back(std::make_tuple(1, 4, 32));
  break;
case SVE::BI__builtin_sve_svqshrnb_n_u64:
ImmChecks.push_back(std::make_tuple(1, 4, 64));
  break;
case SVE::BI__builtin_sve_svqshrnt_n_s16:
ImmChecks.push_back(std::make_tuple(2, 4, 16));
  break;
case SVE::BI__builtin_sve_svqshrnt_n_s32:
ImmChecks.push_back(std::make_tuple(2, 4, 32));
  break;
case SVE::BI__builtin_sve_svqshrnt_n_s64:
ImmChecks.push_back(std::make_tuple(2, 4, 64));
  break;
case SVE::BI__builtin_sve_svqshrnt_n_u16:
ImmChecks.push_back(std::make_tuple(2, 4, 16));
  break;
case SVE::BI__builtin_sve_svqshrnt_n_u32:
ImmChecks.push_back(std::make_tuple(2, 4, 32));
  break;
case SVE::BI__builtin_sve_svqshrnt_n_u64:
ImmChecks.push_back(std::make_tuple(2, 4, 64));
  break;
case SVE::BI__builtin_sve_svqshrunb_n_s16:
ImmChecks.push_back(std::make_tuple(1, 4, 16));
  break;
case SVE::BI__builtin_sve_svqshrunb_n_s32:
ImmChecks.push_back(std::make_tuple(1, 4, 32));
  break;
case SVE::BI__builtin_sve_svqshrunb_n_s64:
ImmChecks.push_back(std::make_tuple(1, 4, 64));
  break;
case SVE::BI__builtin_sve_svqshrunt_n_s16:
ImmChecks.push_back(std::make_tuple(2, 4, 16));
  break;
case SVE::BI__builtin_sve_svqshrunt_n_s32:
ImmChecks.push_back(std::make_tuple(2, 4, 32));
  break;
case SVE::BI__builtin_sve_svqshrunt_n_s64:
ImmChecks.push_back(std::make_tuple(2, 4, 64));
  break;
case SVE::BI__builtin_sve_svrshr_n_s16_m:
ImmChecks.push_back(std::make_tuple(2, 3, 16));
  break;
case SVE::BI__builtin_sve_svrshr_n_s16_x:
ImmChecks.push_back(std::make_tuple(2, 3, 16));
  break;
case SVE::BI__builtin_sve_svrshr_n_s16_z:
ImmChecks.push_back(std::make_tuple(2, 3, 16));
  break;
case SVE::BI__builtin_sve_svrshr_n_s32_m:
ImmChecks.push_back(std::make_tuple(2, 3, 32));
  break;
case SVE::BI__builtin_sve_svrshr_n_s32_x:
ImmChecks.push_back(std::make_tuple(2, 3, 32));
  break;
case SVE::BI__builtin_sve_svrshr_n_s32_z:
ImmChecks.push_back(std::make_tuple(2, 3, 32));
  break;
case SVE::BI__builtin_sve_svrshr_n_s64_m:
ImmChecks.push_back(std::make_tuple(2, 3, 64));
  break;
case SVE::BI__builtin_sve_svrshr_n_s64_x:
ImmChecks.push_back(std::make_tuple(2, 3, 64));
  break;
case SVE::BI__builtin_sve_svrshr_n_s64_z:
ImmChecks.push_back(std::make_tuple(2, 3, 64));
  break;
case SVE::BI__builtin_sve_svrshr_n_s8_m:
ImmChecks.push_back(std::make_tuple(2, 3, 8));
  break;
case SVE::BI__builtin_sve_svrshr_n_s8_x:
ImmChecks.push_back(std::make_tuple(2, 3, 8));
  break;
case SVE::BI__builtin_sve_svrshr_n_s8_z:
ImmChecks.push_back(std::make_tuple(2, 3, 8));
  break;
case SVE::BI__builtin_sve_svrshr_n_u16_m:
ImmChecks.push_back(std::make_tuple(2, 3, 16));
  break;
case SVE::BI__builtin_sve_svrshr_n_u16_x:
ImmChecks.push_back(std::make_tuple(2, 3, 16));
  break;
case SVE::BI__builtin_sve_svrshr_n_u16_z:
ImmChecks.push_back(std::make_tuple(2, 3, 16));
  break;
case SVE::BI__builtin_sve_svrshr_n_u32_m:
ImmChecks.push_back(std::make_tuple(2, 3, 32));
  break;
case SVE::BI__builtin_sve_svrshr_n_u32_x:
ImmChecks.push_back(std::make_tuple(2, 3, 32));
  break;
case SVE::BI__builtin_sve_svrshr_n_u32_z:
ImmChecks.push_back(std::make_tuple(2, 3, 32));
  break;
case SVE::BI__builtin_sve_svrshr_n_u64_m:
ImmChecks.push_back(std::make_tuple(2, 3, 64));
  break;
case SVE::BI__builtin_sve_svrshr_n_u64_x:
ImmChecks.push_back(std::make_tuple(2, 3, 64));
  break;
case SVE::BI__builtin_sve_svrshr_n_u64_z:
ImmChecks.push_back(std::make_tuple(2, 3, 64));
  break;
case SVE::BI__builtin_sve_svrshr_n_u8_m:
ImmChecks.push_back(std::make_tuple(2, 3, 8));
  break;
case SVE::BI__builtin_sve_svrshr_n_u8_x:
ImmChecks.push_back(std::make_tuple(2, 3, 8));
  break;
case SVE::BI__builtin_sve_svrshr_n_u8_z:
ImmChecks.push_back(std::make_tuple(2, 3, 8));
  break;
case SVE::BI__builtin_sve_svrshrnb_n_s16:
ImmChecks.push_back(std::make_tuple(1, 4, 16));
  break;
case SVE::BI__builtin_sve_svrshrnb_n_s32:
ImmChecks.push_back(std::make_tuple(1, 4, 32));
  break;
case SVE::BI__builtin_sve_svrshrnb_n_s64:
ImmChecks.push_back(std::make_tuple(1, 4, 64));
  break;
case SVE::BI__builtin_sve_svrshrnb_n_u16:
ImmChecks.push_back(std::make_tuple(1, 4, 16));
  break;
case SVE::BI__builtin_sve_svrshrnb_n_u32:
ImmChecks.push_back(std::make_tuple(1, 4, 32));
  break;
case SVE::BI__builtin_sve_svrshrnb_n_u64:
ImmChecks.push_back(std::make_tuple(1, 4, 64));
  break;
case SVE::BI__builtin_sve_svrshrnt_n_s16:
ImmChecks.push_back(std::make_tuple(2, 4, 16));
  break;
case SVE::BI__builtin_sve_svrshrnt_n_s32:
ImmChecks.push_back(std::make_tuple(2, 4, 32));
  break;
case SVE::BI__builtin_sve_svrshrnt_n_s64:
ImmChecks.push_back(std::make_tuple(2, 4, 64));
  break;
case SVE::BI__builtin_sve_svrshrnt_n_u16:
ImmChecks.push_back(std::make_tuple(2, 4, 16));
  break;
case SVE::BI__builtin_sve_svrshrnt_n_u32:
ImmChecks.push_back(std::make_tuple(2, 4, 32));
  break;
case SVE::BI__builtin_sve_svrshrnt_n_u64:
ImmChecks.push_back(std::make_tuple(2, 4, 64));
  break;
case SVE::BI__builtin_sve_svrsra_n_s16:
ImmChecks.push_back(std::make_tuple(2, 3, 16));
  break;
case SVE::BI__builtin_sve_svrsra_n_s32:
ImmChecks.push_back(std::make_tuple(2, 3, 32));
  break;
case SVE::BI__builtin_sve_svrsra_n_s64:
ImmChecks.push_back(std::make_tuple(2, 3, 64));
  break;
case SVE::BI__builtin_sve_svrsra_n_s8:
ImmChecks.push_back(std::make_tuple(2, 3, 8));
  break;
case SVE::BI__builtin_sve_svrsra_n_u16:
ImmChecks.push_back(std::make_tuple(2, 3, 16));
  break;
case SVE::BI__builtin_sve_svrsra_n_u32:
ImmChecks.push_back(std::make_tuple(2, 3, 32));
  break;
case SVE::BI__builtin_sve_svrsra_n_u64:
ImmChecks.push_back(std::make_tuple(2, 3, 64));
  break;
case SVE::BI__builtin_sve_svrsra_n_u8:
ImmChecks.push_back(std::make_tuple(2, 3, 8));
  break;
case SVE::BI__builtin_sve_svset2_b:
ImmChecks.push_back(std::make_tuple(1, 13, 0));
  break;
case SVE::BI__builtin_sve_svset2_bf16:
ImmChecks.push_back(std::make_tuple(1, 13, 0));
  break;
case SVE::BI__builtin_sve_svset2_f16:
ImmChecks.push_back(std::make_tuple(1, 13, 0));
  break;
case SVE::BI__builtin_sve_svset2_f32:
ImmChecks.push_back(std::make_tuple(1, 13, 0));
  break;
case SVE::BI__builtin_sve_svset2_f64:
ImmChecks.push_back(std::make_tuple(1, 13, 0));
  break;
case SVE::BI__builtin_sve_svset2_s16:
ImmChecks.push_back(std::make_tuple(1, 13, 0));
  break;
case SVE::BI__builtin_sve_svset2_s32:
ImmChecks.push_back(std::make_tuple(1, 13, 0));
  break;
case SVE::BI__builtin_sve_svset2_s64:
ImmChecks.push_back(std::make_tuple(1, 13, 0));
  break;
case SVE::BI__builtin_sve_svset2_s8:
ImmChecks.push_back(std::make_tuple(1, 13, 0));
  break;
case SVE::BI__builtin_sve_svset2_u16:
ImmChecks.push_back(std::make_tuple(1, 13, 0));
  break;
case SVE::BI__builtin_sve_svset2_u32:
ImmChecks.push_back(std::make_tuple(1, 13, 0));
  break;
case SVE::BI__builtin_sve_svset2_u64:
ImmChecks.push_back(std::make_tuple(1, 13, 0));
  break;
case SVE::BI__builtin_sve_svset2_u8:
ImmChecks.push_back(std::make_tuple(1, 13, 0));
  break;
case SVE::BI__builtin_sve_svset3_bf16:
ImmChecks.push_back(std::make_tuple(1, 14, 0));
  break;
case SVE::BI__builtin_sve_svset3_f16:
ImmChecks.push_back(std::make_tuple(1, 14, 0));
  break;
case SVE::BI__builtin_sve_svset3_f32:
ImmChecks.push_back(std::make_tuple(1, 14, 0));
  break;
case SVE::BI__builtin_sve_svset3_f64:
ImmChecks.push_back(std::make_tuple(1, 14, 0));
  break;
case SVE::BI__builtin_sve_svset3_s16:
ImmChecks.push_back(std::make_tuple(1, 14, 0));
  break;
case SVE::BI__builtin_sve_svset3_s32:
ImmChecks.push_back(std::make_tuple(1, 14, 0));
  break;
case SVE::BI__builtin_sve_svset3_s64:
ImmChecks.push_back(std::make_tuple(1, 14, 0));
  break;
case SVE::BI__builtin_sve_svset3_s8:
ImmChecks.push_back(std::make_tuple(1, 14, 0));
  break;
case SVE::BI__builtin_sve_svset3_u16:
ImmChecks.push_back(std::make_tuple(1, 14, 0));
  break;
case SVE::BI__builtin_sve_svset3_u32:
ImmChecks.push_back(std::make_tuple(1, 14, 0));
  break;
case SVE::BI__builtin_sve_svset3_u64:
ImmChecks.push_back(std::make_tuple(1, 14, 0));
  break;
case SVE::BI__builtin_sve_svset3_u8:
ImmChecks.push_back(std::make_tuple(1, 14, 0));
  break;
case SVE::BI__builtin_sve_svset4_b:
ImmChecks.push_back(std::make_tuple(1, 15, 0));
  break;
case SVE::BI__builtin_sve_svset4_bf16:
ImmChecks.push_back(std::make_tuple(1, 15, 0));
  break;
case SVE::BI__builtin_sve_svset4_f16:
ImmChecks.push_back(std::make_tuple(1, 15, 0));
  break;
case SVE::BI__builtin_sve_svset4_f32:
ImmChecks.push_back(std::make_tuple(1, 15, 0));
  break;
case SVE::BI__builtin_sve_svset4_f64:
ImmChecks.push_back(std::make_tuple(1, 15, 0));
  break;
case SVE::BI__builtin_sve_svset4_s16:
ImmChecks.push_back(std::make_tuple(1, 15, 0));
  break;
case SVE::BI__builtin_sve_svset4_s32:
ImmChecks.push_back(std::make_tuple(1, 15, 0));
  break;
case SVE::BI__builtin_sve_svset4_s64:
ImmChecks.push_back(std::make_tuple(1, 15, 0));
  break;
case SVE::BI__builtin_sve_svset4_s8:
ImmChecks.push_back(std::make_tuple(1, 15, 0));
  break;
case SVE::BI__builtin_sve_svset4_u16:
ImmChecks.push_back(std::make_tuple(1, 15, 0));
  break;
case SVE::BI__builtin_sve_svset4_u32:
ImmChecks.push_back(std::make_tuple(1, 15, 0));
  break;
case SVE::BI__builtin_sve_svset4_u64:
ImmChecks.push_back(std::make_tuple(1, 15, 0));
  break;
case SVE::BI__builtin_sve_svset4_u8:
ImmChecks.push_back(std::make_tuple(1, 15, 0));
  break;
case SVE::BI__builtin_sve_svshllb_n_s16:
ImmChecks.push_back(std::make_tuple(1, 5, 8));
  break;
case SVE::BI__builtin_sve_svshllb_n_s32:
ImmChecks.push_back(std::make_tuple(1, 5, 16));
  break;
case SVE::BI__builtin_sve_svshllb_n_s64:
ImmChecks.push_back(std::make_tuple(1, 5, 32));
  break;
case SVE::BI__builtin_sve_svshllb_n_u16:
ImmChecks.push_back(std::make_tuple(1, 5, 8));
  break;
case SVE::BI__builtin_sve_svshllb_n_u32:
ImmChecks.push_back(std::make_tuple(1, 5, 16));
  break;
case SVE::BI__builtin_sve_svshllb_n_u64:
ImmChecks.push_back(std::make_tuple(1, 5, 32));
  break;
case SVE::BI__builtin_sve_svshllt_n_s16:
ImmChecks.push_back(std::make_tuple(1, 5, 8));
  break;
case SVE::BI__builtin_sve_svshllt_n_s32:
ImmChecks.push_back(std::make_tuple(1, 5, 16));
  break;
case SVE::BI__builtin_sve_svshllt_n_s64:
ImmChecks.push_back(std::make_tuple(1, 5, 32));
  break;
case SVE::BI__builtin_sve_svshllt_n_u16:
ImmChecks.push_back(std::make_tuple(1, 5, 8));
  break;
case SVE::BI__builtin_sve_svshllt_n_u32:
ImmChecks.push_back(std::make_tuple(1, 5, 16));
  break;
case SVE::BI__builtin_sve_svshllt_n_u64:
ImmChecks.push_back(std::make_tuple(1, 5, 32));
  break;
case SVE::BI__builtin_sve_svshrnb_n_s16:
ImmChecks.push_back(std::make_tuple(1, 4, 16));
  break;
case SVE::BI__builtin_sve_svshrnb_n_s32:
ImmChecks.push_back(std::make_tuple(1, 4, 32));
  break;
case SVE::BI__builtin_sve_svshrnb_n_s64:
ImmChecks.push_back(std::make_tuple(1, 4, 64));
  break;
case SVE::BI__builtin_sve_svshrnb_n_u16:
ImmChecks.push_back(std::make_tuple(1, 4, 16));
  break;
case SVE::BI__builtin_sve_svshrnb_n_u32:
ImmChecks.push_back(std::make_tuple(1, 4, 32));
  break;
case SVE::BI__builtin_sve_svshrnb_n_u64:
ImmChecks.push_back(std::make_tuple(1, 4, 64));
  break;
case SVE::BI__builtin_sve_svshrnt_n_s16:
ImmChecks.push_back(std::make_tuple(2, 4, 16));
  break;
case SVE::BI__builtin_sve_svshrnt_n_s32:
ImmChecks.push_back(std::make_tuple(2, 4, 32));
  break;
case SVE::BI__builtin_sve_svshrnt_n_s64:
ImmChecks.push_back(std::make_tuple(2, 4, 64));
  break;
case SVE::BI__builtin_sve_svshrnt_n_u16:
ImmChecks.push_back(std::make_tuple(2, 4, 16));
  break;
case SVE::BI__builtin_sve_svshrnt_n_u32:
ImmChecks.push_back(std::make_tuple(2, 4, 32));
  break;
case SVE::BI__builtin_sve_svshrnt_n_u64:
ImmChecks.push_back(std::make_tuple(2, 4, 64));
  break;
case SVE::BI__builtin_sve_svsli_n_s16:
ImmChecks.push_back(std::make_tuple(2, 5, 16));
  break;
case SVE::BI__builtin_sve_svsli_n_s32:
ImmChecks.push_back(std::make_tuple(2, 5, 32));
  break;
case SVE::BI__builtin_sve_svsli_n_s64:
ImmChecks.push_back(std::make_tuple(2, 5, 64));
  break;
case SVE::BI__builtin_sve_svsli_n_s8:
ImmChecks.push_back(std::make_tuple(2, 5, 8));
  break;
case SVE::BI__builtin_sve_svsli_n_u16:
ImmChecks.push_back(std::make_tuple(2, 5, 16));
  break;
case SVE::BI__builtin_sve_svsli_n_u32:
ImmChecks.push_back(std::make_tuple(2, 5, 32));
  break;
case SVE::BI__builtin_sve_svsli_n_u64:
ImmChecks.push_back(std::make_tuple(2, 5, 64));
  break;
case SVE::BI__builtin_sve_svsli_n_u8:
ImmChecks.push_back(std::make_tuple(2, 5, 8));
  break;
case SVE::BI__builtin_sve_svsra_n_s16:
ImmChecks.push_back(std::make_tuple(2, 3, 16));
  break;
case SVE::BI__builtin_sve_svsra_n_s32:
ImmChecks.push_back(std::make_tuple(2, 3, 32));
  break;
case SVE::BI__builtin_sve_svsra_n_s64:
ImmChecks.push_back(std::make_tuple(2, 3, 64));
  break;
case SVE::BI__builtin_sve_svsra_n_s8:
ImmChecks.push_back(std::make_tuple(2, 3, 8));
  break;
case SVE::BI__builtin_sve_svsra_n_u16:
ImmChecks.push_back(std::make_tuple(2, 3, 16));
  break;
case SVE::BI__builtin_sve_svsra_n_u32:
ImmChecks.push_back(std::make_tuple(2, 3, 32));
  break;
case SVE::BI__builtin_sve_svsra_n_u64:
ImmChecks.push_back(std::make_tuple(2, 3, 64));
  break;
case SVE::BI__builtin_sve_svsra_n_u8:
ImmChecks.push_back(std::make_tuple(2, 3, 8));
  break;
case SVE::BI__builtin_sve_svsri_n_s16:
ImmChecks.push_back(std::make_tuple(2, 3, 16));
  break;
case SVE::BI__builtin_sve_svsri_n_s32:
ImmChecks.push_back(std::make_tuple(2, 3, 32));
  break;
case SVE::BI__builtin_sve_svsri_n_s64:
ImmChecks.push_back(std::make_tuple(2, 3, 64));
  break;
case SVE::BI__builtin_sve_svsri_n_s8:
ImmChecks.push_back(std::make_tuple(2, 3, 8));
  break;
case SVE::BI__builtin_sve_svsri_n_u16:
ImmChecks.push_back(std::make_tuple(2, 3, 16));
  break;
case SVE::BI__builtin_sve_svsri_n_u32:
ImmChecks.push_back(std::make_tuple(2, 3, 32));
  break;
case SVE::BI__builtin_sve_svsri_n_u64:
ImmChecks.push_back(std::make_tuple(2, 3, 64));
  break;
case SVE::BI__builtin_sve_svsri_n_u8:
ImmChecks.push_back(std::make_tuple(2, 3, 8));
  break;
case SVE::BI__builtin_sve_svsudot_lane_s32:
ImmChecks.push_back(std::make_tuple(3, 9, 8));
  break;
case SVE::BI__builtin_sve_svtmad_f16:
ImmChecks.push_back(std::make_tuple(2, 6, 0));
  break;
case SVE::BI__builtin_sve_svtmad_f32:
ImmChecks.push_back(std::make_tuple(2, 6, 0));
  break;
case SVE::BI__builtin_sve_svtmad_f64:
ImmChecks.push_back(std::make_tuple(2, 6, 0));
  break;
case SVE::BI__builtin_sve_svusdot_lane_s32:
ImmChecks.push_back(std::make_tuple(3, 9, 8));
  break;
case SVE::BI__builtin_sve_svwhilege_c16_s64:
ImmChecks.push_back(std::make_tuple(2, 19, 0));
  break;
case SVE::BI__builtin_sve_svwhilege_c16_u64:
ImmChecks.push_back(std::make_tuple(2, 19, 0));
  break;
case SVE::BI__builtin_sve_svwhilege_c32_s64:
ImmChecks.push_back(std::make_tuple(2, 19, 0));
  break;
case SVE::BI__builtin_sve_svwhilege_c32_u64:
ImmChecks.push_back(std::make_tuple(2, 19, 0));
  break;
case SVE::BI__builtin_sve_svwhilege_c64_s64:
ImmChecks.push_back(std::make_tuple(2, 19, 0));
  break;
case SVE::BI__builtin_sve_svwhilege_c64_u64:
ImmChecks.push_back(std::make_tuple(2, 19, 0));
  break;
case SVE::BI__builtin_sve_svwhilege_c8_s64:
ImmChecks.push_back(std::make_tuple(2, 19, 0));
  break;
case SVE::BI__builtin_sve_svwhilege_c8_u64:
ImmChecks.push_back(std::make_tuple(2, 19, 0));
  break;
case SVE::BI__builtin_sve_svwhilegt_c16_s64:
ImmChecks.push_back(std::make_tuple(2, 19, 0));
  break;
case SVE::BI__builtin_sve_svwhilegt_c16_u64:
ImmChecks.push_back(std::make_tuple(2, 19, 0));
  break;
case SVE::BI__builtin_sve_svwhilegt_c32_s64:
ImmChecks.push_back(std::make_tuple(2, 19, 0));
  break;
case SVE::BI__builtin_sve_svwhilegt_c32_u64:
ImmChecks.push_back(std::make_tuple(2, 19, 0));
  break;
case SVE::BI__builtin_sve_svwhilegt_c64_s64:
ImmChecks.push_back(std::make_tuple(2, 19, 0));
  break;
case SVE::BI__builtin_sve_svwhilegt_c64_u64:
ImmChecks.push_back(std::make_tuple(2, 19, 0));
  break;
case SVE::BI__builtin_sve_svwhilegt_c8_s64:
ImmChecks.push_back(std::make_tuple(2, 19, 0));
  break;
case SVE::BI__builtin_sve_svwhilegt_c8_u64:
ImmChecks.push_back(std::make_tuple(2, 19, 0));
  break;
case SVE::BI__builtin_sve_svwhilele_c16_s64:
ImmChecks.push_back(std::make_tuple(2, 19, 0));
  break;
case SVE::BI__builtin_sve_svwhilele_c16_u64:
ImmChecks.push_back(std::make_tuple(2, 19, 0));
  break;
case SVE::BI__builtin_sve_svwhilele_c32_s64:
ImmChecks.push_back(std::make_tuple(2, 19, 0));
  break;
case SVE::BI__builtin_sve_svwhilele_c32_u64:
ImmChecks.push_back(std::make_tuple(2, 19, 0));
  break;
case SVE::BI__builtin_sve_svwhilele_c64_s64:
ImmChecks.push_back(std::make_tuple(2, 19, 0));
  break;
case SVE::BI__builtin_sve_svwhilele_c64_u64:
ImmChecks.push_back(std::make_tuple(2, 19, 0));
  break;
case SVE::BI__builtin_sve_svwhilele_c8_s64:
ImmChecks.push_back(std::make_tuple(2, 19, 0));
  break;
case SVE::BI__builtin_sve_svwhilele_c8_u64:
ImmChecks.push_back(std::make_tuple(2, 19, 0));
  break;
case SVE::BI__builtin_sve_svwhilelt_c16_s64:
ImmChecks.push_back(std::make_tuple(2, 19, 0));
  break;
case SVE::BI__builtin_sve_svwhilelt_c16_u64:
ImmChecks.push_back(std::make_tuple(2, 19, 0));
  break;
case SVE::BI__builtin_sve_svwhilelt_c32_s64:
ImmChecks.push_back(std::make_tuple(2, 19, 0));
  break;
case SVE::BI__builtin_sve_svwhilelt_c32_u64:
ImmChecks.push_back(std::make_tuple(2, 19, 0));
  break;
case SVE::BI__builtin_sve_svwhilelt_c64_s64:
ImmChecks.push_back(std::make_tuple(2, 19, 0));
  break;
case SVE::BI__builtin_sve_svwhilelt_c64_u64:
ImmChecks.push_back(std::make_tuple(2, 19, 0));
  break;
case SVE::BI__builtin_sve_svwhilelt_c8_s64:
ImmChecks.push_back(std::make_tuple(2, 19, 0));
  break;
case SVE::BI__builtin_sve_svwhilelt_c8_u64:
ImmChecks.push_back(std::make_tuple(2, 19, 0));
  break;
case SVE::BI__builtin_sve_svxar_n_s16:
ImmChecks.push_back(std::make_tuple(2, 3, 16));
  break;
case SVE::BI__builtin_sve_svxar_n_s32:
ImmChecks.push_back(std::make_tuple(2, 3, 32));
  break;
case SVE::BI__builtin_sve_svxar_n_s64:
ImmChecks.push_back(std::make_tuple(2, 3, 64));
  break;
case SVE::BI__builtin_sve_svxar_n_s8:
ImmChecks.push_back(std::make_tuple(2, 3, 8));
  break;
case SVE::BI__builtin_sve_svxar_n_u16:
ImmChecks.push_back(std::make_tuple(2, 3, 16));
  break;
case SVE::BI__builtin_sve_svxar_n_u32:
ImmChecks.push_back(std::make_tuple(2, 3, 32));
  break;
case SVE::BI__builtin_sve_svxar_n_u64:
ImmChecks.push_back(std::make_tuple(2, 3, 64));
  break;
case SVE::BI__builtin_sve_svxar_n_u8:
ImmChecks.push_back(std::make_tuple(2, 3, 8));
  break;
#endif

