Back to home page

EIC code displayed by LXR

 
 

    


Warning, /include/clang/Basic/arm_sme_sema_rangechecks.inc is written in an unsupported language. File is not indexed.

0001 #ifdef GET_SME_IMMEDIATE_CHECK
0002 case SME::BI__builtin_sme_svaddha_za32_s32_m:
0003 ImmChecks.push_back(std::make_tuple(0, 16, 0));
0004   break;
0005 case SME::BI__builtin_sme_svaddha_za32_u32_m:
0006 ImmChecks.push_back(std::make_tuple(0, 16, 0));
0007   break;
0008 case SME::BI__builtin_sme_svaddha_za64_s64_m:
0009 ImmChecks.push_back(std::make_tuple(0, 6, 0));
0010   break;
0011 case SME::BI__builtin_sme_svaddha_za64_u64_m:
0012 ImmChecks.push_back(std::make_tuple(0, 6, 0));
0013   break;
0014 case SME::BI__builtin_sme_svaddva_za32_s32_m:
0015 ImmChecks.push_back(std::make_tuple(0, 16, 0));
0016   break;
0017 case SME::BI__builtin_sme_svaddva_za32_u32_m:
0018 ImmChecks.push_back(std::make_tuple(0, 16, 0));
0019   break;
0020 case SME::BI__builtin_sme_svaddva_za64_s64_m:
0021 ImmChecks.push_back(std::make_tuple(0, 6, 0));
0022   break;
0023 case SME::BI__builtin_sme_svaddva_za64_u64_m:
0024 ImmChecks.push_back(std::make_tuple(0, 6, 0));
0025   break;
0026 case SME::BI__builtin_sme_svbmopa_za32_s32_m:
0027 ImmChecks.push_back(std::make_tuple(0, 16, 0));
0028   break;
0029 case SME::BI__builtin_sme_svbmopa_za32_u32_m:
0030 ImmChecks.push_back(std::make_tuple(0, 16, 0));
0031   break;
0032 case SME::BI__builtin_sme_svbmops_za32_s32_m:
0033 ImmChecks.push_back(std::make_tuple(0, 16, 0));
0034   break;
0035 case SME::BI__builtin_sme_svbmops_za32_u32_m:
0036 ImmChecks.push_back(std::make_tuple(0, 16, 0));
0037   break;
0038 case SME::BI__builtin_sme_svdot_lane_za16_mf8_vg1x2_fpm:
0039 ImmChecks.push_back(std::make_tuple(3, 6, 0));
0040   break;
0041 case SME::BI__builtin_sme_svdot_lane_za16_mf8_vg1x4_fpm:
0042 ImmChecks.push_back(std::make_tuple(3, 6, 0));
0043   break;
0044 case SME::BI__builtin_sme_svdot_lane_za32_bf16_vg1x2:
0045 ImmChecks.push_back(std::make_tuple(3, 16, 0));
0046   break;
0047 case SME::BI__builtin_sme_svdot_lane_za32_bf16_vg1x4:
0048 ImmChecks.push_back(std::make_tuple(3, 16, 0));
0049   break;
0050 case SME::BI__builtin_sme_svdot_lane_za32_f16_vg1x2:
0051 ImmChecks.push_back(std::make_tuple(3, 16, 0));
0052   break;
0053 case SME::BI__builtin_sme_svdot_lane_za32_f16_vg1x4:
0054 ImmChecks.push_back(std::make_tuple(3, 16, 0));
0055   break;
0056 case SME::BI__builtin_sme_svdot_lane_za32_mf8_vg1x2_fpm:
0057 ImmChecks.push_back(std::make_tuple(3, 16, 0));
0058   break;
0059 case SME::BI__builtin_sme_svdot_lane_za32_mf8_vg1x4_fpm:
0060 ImmChecks.push_back(std::make_tuple(3, 16, 0));
0061   break;
0062 case SME::BI__builtin_sme_svdot_lane_za32_s16_vg1x2:
0063 ImmChecks.push_back(std::make_tuple(3, 16, 0));
0064   break;
0065 case SME::BI__builtin_sme_svdot_lane_za32_s16_vg1x4:
0066 ImmChecks.push_back(std::make_tuple(3, 16, 0));
0067   break;
0068 case SME::BI__builtin_sme_svdot_lane_za32_s8_vg1x2:
0069 ImmChecks.push_back(std::make_tuple(3, 16, 0));
0070   break;
0071 case SME::BI__builtin_sme_svdot_lane_za32_s8_vg1x4:
0072 ImmChecks.push_back(std::make_tuple(3, 16, 0));
0073   break;
0074 case SME::BI__builtin_sme_svdot_lane_za32_u16_vg1x2:
0075 ImmChecks.push_back(std::make_tuple(3, 16, 0));
0076   break;
0077 case SME::BI__builtin_sme_svdot_lane_za32_u16_vg1x4:
0078 ImmChecks.push_back(std::make_tuple(3, 16, 0));
0079   break;
0080 case SME::BI__builtin_sme_svdot_lane_za32_u8_vg1x2:
0081 ImmChecks.push_back(std::make_tuple(3, 16, 0));
0082   break;
0083 case SME::BI__builtin_sme_svdot_lane_za32_u8_vg1x4:
0084 ImmChecks.push_back(std::make_tuple(3, 16, 0));
0085   break;
0086 case SME::BI__builtin_sme_svdot_lane_za64_s16_vg1x2:
0087 ImmChecks.push_back(std::make_tuple(3, 14, 0));
0088   break;
0089 case SME::BI__builtin_sme_svdot_lane_za64_s16_vg1x4:
0090 ImmChecks.push_back(std::make_tuple(3, 14, 0));
0091   break;
0092 case SME::BI__builtin_sme_svdot_lane_za64_u16_vg1x2:
0093 ImmChecks.push_back(std::make_tuple(3, 14, 0));
0094   break;
0095 case SME::BI__builtin_sme_svdot_lane_za64_u16_vg1x4:
0096 ImmChecks.push_back(std::make_tuple(3, 14, 0));
0097   break;
0098 case SME::BI__builtin_sme_svld1_hor_vnum_za128:
0099 ImmChecks.push_back(std::make_tuple(0, 18, 0));
0100   break;
0101 case SME::BI__builtin_sme_svld1_hor_vnum_za16:
0102 ImmChecks.push_back(std::make_tuple(0, 14, 0));
0103   break;
0104 case SME::BI__builtin_sme_svld1_hor_vnum_za32:
0105 ImmChecks.push_back(std::make_tuple(0, 16, 0));
0106   break;
0107 case SME::BI__builtin_sme_svld1_hor_vnum_za64:
0108 ImmChecks.push_back(std::make_tuple(0, 6, 0));
0109   break;
0110 case SME::BI__builtin_sme_svld1_hor_vnum_za8:
0111 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0112   break;
0113 case SME::BI__builtin_sme_svld1_hor_za128:
0114 ImmChecks.push_back(std::make_tuple(0, 18, 0));
0115   break;
0116 case SME::BI__builtin_sme_svld1_hor_za16:
0117 ImmChecks.push_back(std::make_tuple(0, 14, 0));
0118   break;
0119 case SME::BI__builtin_sme_svld1_hor_za32:
0120 ImmChecks.push_back(std::make_tuple(0, 16, 0));
0121   break;
0122 case SME::BI__builtin_sme_svld1_hor_za64:
0123 ImmChecks.push_back(std::make_tuple(0, 6, 0));
0124   break;
0125 case SME::BI__builtin_sme_svld1_hor_za8:
0126 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0127   break;
0128 case SME::BI__builtin_sme_svld1_ver_vnum_za128:
0129 ImmChecks.push_back(std::make_tuple(0, 18, 0));
0130   break;
0131 case SME::BI__builtin_sme_svld1_ver_vnum_za16:
0132 ImmChecks.push_back(std::make_tuple(0, 14, 0));
0133   break;
0134 case SME::BI__builtin_sme_svld1_ver_vnum_za32:
0135 ImmChecks.push_back(std::make_tuple(0, 16, 0));
0136   break;
0137 case SME::BI__builtin_sme_svld1_ver_vnum_za64:
0138 ImmChecks.push_back(std::make_tuple(0, 6, 0));
0139   break;
0140 case SME::BI__builtin_sme_svld1_ver_vnum_za8:
0141 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0142   break;
0143 case SME::BI__builtin_sme_svld1_ver_za128:
0144 ImmChecks.push_back(std::make_tuple(0, 18, 0));
0145   break;
0146 case SME::BI__builtin_sme_svld1_ver_za16:
0147 ImmChecks.push_back(std::make_tuple(0, 14, 0));
0148   break;
0149 case SME::BI__builtin_sme_svld1_ver_za32:
0150 ImmChecks.push_back(std::make_tuple(0, 16, 0));
0151   break;
0152 case SME::BI__builtin_sme_svld1_ver_za64:
0153 ImmChecks.push_back(std::make_tuple(0, 6, 0));
0154   break;
0155 case SME::BI__builtin_sme_svld1_ver_za8:
0156 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0157   break;
0158 case SME::BI__builtin_sme_svldr_zt:
0159 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0160   break;
0161 case SME::BI__builtin_sme_svluti2_lane_zt_bf16:
0162 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0163 ImmChecks.push_back(std::make_tuple(2, 18, 0));
0164   break;
0165 case SME::BI__builtin_sme_svluti2_lane_zt_bf16_x2:
0166 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0167 ImmChecks.push_back(std::make_tuple(2, 6, 0));
0168   break;
0169 case SME::BI__builtin_sme_svluti2_lane_zt_bf16_x4:
0170 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0171 ImmChecks.push_back(std::make_tuple(2, 16, 0));
0172   break;
0173 case SME::BI__builtin_sme_svluti2_lane_zt_f16:
0174 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0175 ImmChecks.push_back(std::make_tuple(2, 18, 0));
0176   break;
0177 case SME::BI__builtin_sme_svluti2_lane_zt_f16_x2:
0178 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0179 ImmChecks.push_back(std::make_tuple(2, 6, 0));
0180   break;
0181 case SME::BI__builtin_sme_svluti2_lane_zt_f16_x4:
0182 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0183 ImmChecks.push_back(std::make_tuple(2, 16, 0));
0184   break;
0185 case SME::BI__builtin_sme_svluti2_lane_zt_f32:
0186 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0187 ImmChecks.push_back(std::make_tuple(2, 18, 0));
0188   break;
0189 case SME::BI__builtin_sme_svluti2_lane_zt_f32_x2:
0190 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0191 ImmChecks.push_back(std::make_tuple(2, 6, 0));
0192   break;
0193 case SME::BI__builtin_sme_svluti2_lane_zt_f32_x4:
0194 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0195 ImmChecks.push_back(std::make_tuple(2, 16, 0));
0196   break;
0197 case SME::BI__builtin_sme_svluti2_lane_zt_s16:
0198 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0199 ImmChecks.push_back(std::make_tuple(2, 18, 0));
0200   break;
0201 case SME::BI__builtin_sme_svluti2_lane_zt_s16_x2:
0202 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0203 ImmChecks.push_back(std::make_tuple(2, 6, 0));
0204   break;
0205 case SME::BI__builtin_sme_svluti2_lane_zt_s16_x4:
0206 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0207 ImmChecks.push_back(std::make_tuple(2, 16, 0));
0208   break;
0209 case SME::BI__builtin_sme_svluti2_lane_zt_s32:
0210 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0211 ImmChecks.push_back(std::make_tuple(2, 18, 0));
0212   break;
0213 case SME::BI__builtin_sme_svluti2_lane_zt_s32_x2:
0214 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0215 ImmChecks.push_back(std::make_tuple(2, 6, 0));
0216   break;
0217 case SME::BI__builtin_sme_svluti2_lane_zt_s32_x4:
0218 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0219 ImmChecks.push_back(std::make_tuple(2, 16, 0));
0220   break;
0221 case SME::BI__builtin_sme_svluti2_lane_zt_s8:
0222 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0223 ImmChecks.push_back(std::make_tuple(2, 18, 0));
0224   break;
0225 case SME::BI__builtin_sme_svluti2_lane_zt_s8_x2:
0226 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0227 ImmChecks.push_back(std::make_tuple(2, 6, 0));
0228   break;
0229 case SME::BI__builtin_sme_svluti2_lane_zt_s8_x4:
0230 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0231 ImmChecks.push_back(std::make_tuple(2, 16, 0));
0232   break;
0233 case SME::BI__builtin_sme_svluti2_lane_zt_u16:
0234 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0235 ImmChecks.push_back(std::make_tuple(2, 18, 0));
0236   break;
0237 case SME::BI__builtin_sme_svluti2_lane_zt_u16_x2:
0238 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0239 ImmChecks.push_back(std::make_tuple(2, 6, 0));
0240   break;
0241 case SME::BI__builtin_sme_svluti2_lane_zt_u16_x4:
0242 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0243 ImmChecks.push_back(std::make_tuple(2, 16, 0));
0244   break;
0245 case SME::BI__builtin_sme_svluti2_lane_zt_u32:
0246 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0247 ImmChecks.push_back(std::make_tuple(2, 18, 0));
0248   break;
0249 case SME::BI__builtin_sme_svluti2_lane_zt_u32_x2:
0250 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0251 ImmChecks.push_back(std::make_tuple(2, 6, 0));
0252   break;
0253 case SME::BI__builtin_sme_svluti2_lane_zt_u32_x4:
0254 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0255 ImmChecks.push_back(std::make_tuple(2, 16, 0));
0256   break;
0257 case SME::BI__builtin_sme_svluti2_lane_zt_u8:
0258 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0259 ImmChecks.push_back(std::make_tuple(2, 18, 0));
0260   break;
0261 case SME::BI__builtin_sme_svluti2_lane_zt_u8_x2:
0262 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0263 ImmChecks.push_back(std::make_tuple(2, 6, 0));
0264   break;
0265 case SME::BI__builtin_sme_svluti2_lane_zt_u8_x4:
0266 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0267 ImmChecks.push_back(std::make_tuple(2, 16, 0));
0268   break;
0269 case SME::BI__builtin_sme_svluti4_lane_zt_bf16:
0270 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0271 ImmChecks.push_back(std::make_tuple(2, 6, 0));
0272   break;
0273 case SME::BI__builtin_sme_svluti4_lane_zt_bf16_x2:
0274 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0275 ImmChecks.push_back(std::make_tuple(2, 16, 0));
0276   break;
0277 case SME::BI__builtin_sme_svluti4_lane_zt_bf16_x4:
0278 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0279 ImmChecks.push_back(std::make_tuple(2, 14, 0));
0280   break;
0281 case SME::BI__builtin_sme_svluti4_lane_zt_f16:
0282 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0283 ImmChecks.push_back(std::make_tuple(2, 6, 0));
0284   break;
0285 case SME::BI__builtin_sme_svluti4_lane_zt_f16_x2:
0286 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0287 ImmChecks.push_back(std::make_tuple(2, 16, 0));
0288   break;
0289 case SME::BI__builtin_sme_svluti4_lane_zt_f16_x4:
0290 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0291 ImmChecks.push_back(std::make_tuple(2, 14, 0));
0292   break;
0293 case SME::BI__builtin_sme_svluti4_lane_zt_f32:
0294 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0295 ImmChecks.push_back(std::make_tuple(2, 6, 0));
0296   break;
0297 case SME::BI__builtin_sme_svluti4_lane_zt_f32_x2:
0298 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0299 ImmChecks.push_back(std::make_tuple(2, 16, 0));
0300   break;
0301 case SME::BI__builtin_sme_svluti4_lane_zt_f32_x4:
0302 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0303 ImmChecks.push_back(std::make_tuple(2, 14, 0));
0304   break;
0305 case SME::BI__builtin_sme_svluti4_lane_zt_s16:
0306 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0307 ImmChecks.push_back(std::make_tuple(2, 6, 0));
0308   break;
0309 case SME::BI__builtin_sme_svluti4_lane_zt_s16_x2:
0310 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0311 ImmChecks.push_back(std::make_tuple(2, 16, 0));
0312   break;
0313 case SME::BI__builtin_sme_svluti4_lane_zt_s16_x4:
0314 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0315 ImmChecks.push_back(std::make_tuple(2, 14, 0));
0316   break;
0317 case SME::BI__builtin_sme_svluti4_lane_zt_s32:
0318 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0319 ImmChecks.push_back(std::make_tuple(2, 6, 0));
0320   break;
0321 case SME::BI__builtin_sme_svluti4_lane_zt_s32_x2:
0322 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0323 ImmChecks.push_back(std::make_tuple(2, 16, 0));
0324   break;
0325 case SME::BI__builtin_sme_svluti4_lane_zt_s32_x4:
0326 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0327 ImmChecks.push_back(std::make_tuple(2, 14, 0));
0328   break;
0329 case SME::BI__builtin_sme_svluti4_lane_zt_s8:
0330 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0331 ImmChecks.push_back(std::make_tuple(2, 6, 0));
0332   break;
0333 case SME::BI__builtin_sme_svluti4_lane_zt_s8_x2:
0334 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0335 ImmChecks.push_back(std::make_tuple(2, 16, 0));
0336   break;
0337 case SME::BI__builtin_sme_svluti4_lane_zt_u16:
0338 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0339 ImmChecks.push_back(std::make_tuple(2, 6, 0));
0340   break;
0341 case SME::BI__builtin_sme_svluti4_lane_zt_u16_x2:
0342 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0343 ImmChecks.push_back(std::make_tuple(2, 16, 0));
0344   break;
0345 case SME::BI__builtin_sme_svluti4_lane_zt_u16_x4:
0346 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0347 ImmChecks.push_back(std::make_tuple(2, 14, 0));
0348   break;
0349 case SME::BI__builtin_sme_svluti4_lane_zt_u32:
0350 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0351 ImmChecks.push_back(std::make_tuple(2, 6, 0));
0352   break;
0353 case SME::BI__builtin_sme_svluti4_lane_zt_u32_x2:
0354 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0355 ImmChecks.push_back(std::make_tuple(2, 16, 0));
0356   break;
0357 case SME::BI__builtin_sme_svluti4_lane_zt_u32_x4:
0358 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0359 ImmChecks.push_back(std::make_tuple(2, 14, 0));
0360   break;
0361 case SME::BI__builtin_sme_svluti4_lane_zt_u8:
0362 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0363 ImmChecks.push_back(std::make_tuple(2, 6, 0));
0364   break;
0365 case SME::BI__builtin_sme_svluti4_lane_zt_u8_x2:
0366 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0367 ImmChecks.push_back(std::make_tuple(2, 16, 0));
0368   break;
0369 case SME::BI__builtin_sme_svluti4_zt_s8_x4:
0370 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0371   break;
0372 case SME::BI__builtin_sme_svluti4_zt_u8_x4:
0373 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0374   break;
0375 case SME::BI__builtin_sme_svmla_lane_za16_bf16_vg1x2:
0376 ImmChecks.push_back(std::make_tuple(3, 6, 0));
0377   break;
0378 case SME::BI__builtin_sme_svmla_lane_za16_bf16_vg1x4:
0379 ImmChecks.push_back(std::make_tuple(3, 6, 0));
0380   break;
0381 case SME::BI__builtin_sme_svmla_lane_za16_f16_vg1x2:
0382 ImmChecks.push_back(std::make_tuple(3, 6, 0));
0383   break;
0384 case SME::BI__builtin_sme_svmla_lane_za16_f16_vg1x4:
0385 ImmChecks.push_back(std::make_tuple(3, 6, 0));
0386   break;
0387 case SME::BI__builtin_sme_svmla_lane_za16_mf8_vg2x1_fpm:
0388 ImmChecks.push_back(std::make_tuple(3, 18, 0));
0389   break;
0390 case SME::BI__builtin_sme_svmla_lane_za16_mf8_vg2x2_fpm:
0391 ImmChecks.push_back(std::make_tuple(3, 18, 0));
0392   break;
0393 case SME::BI__builtin_sme_svmla_lane_za16_mf8_vg2x4_fpm:
0394 ImmChecks.push_back(std::make_tuple(3, 18, 0));
0395   break;
0396 case SME::BI__builtin_sme_svmla_lane_za32_bf16_vg2x1:
0397 ImmChecks.push_back(std::make_tuple(3, 6, 0));
0398   break;
0399 case SME::BI__builtin_sme_svmla_lane_za32_bf16_vg2x2:
0400 ImmChecks.push_back(std::make_tuple(3, 6, 0));
0401   break;
0402 case SME::BI__builtin_sme_svmla_lane_za32_bf16_vg2x4:
0403 ImmChecks.push_back(std::make_tuple(3, 6, 0));
0404   break;
0405 case SME::BI__builtin_sme_svmla_lane_za32_f16_vg2x1:
0406 ImmChecks.push_back(std::make_tuple(3, 6, 0));
0407   break;
0408 case SME::BI__builtin_sme_svmla_lane_za32_f16_vg2x2:
0409 ImmChecks.push_back(std::make_tuple(3, 6, 0));
0410   break;
0411 case SME::BI__builtin_sme_svmla_lane_za32_f16_vg2x4:
0412 ImmChecks.push_back(std::make_tuple(3, 6, 0));
0413   break;
0414 case SME::BI__builtin_sme_svmla_lane_za32_f32_vg1x2:
0415 ImmChecks.push_back(std::make_tuple(3, 16, 0));
0416   break;
0417 case SME::BI__builtin_sme_svmla_lane_za32_f32_vg1x4:
0418 ImmChecks.push_back(std::make_tuple(3, 16, 0));
0419   break;
0420 case SME::BI__builtin_sme_svmla_lane_za32_mf8_vg4x1_fpm:
0421 ImmChecks.push_back(std::make_tuple(3, 18, 0));
0422   break;
0423 case SME::BI__builtin_sme_svmla_lane_za32_mf8_vg4x2_fpm:
0424 ImmChecks.push_back(std::make_tuple(3, 18, 0));
0425   break;
0426 case SME::BI__builtin_sme_svmla_lane_za32_mf8_vg4x4_fpm:
0427 ImmChecks.push_back(std::make_tuple(3, 18, 0));
0428   break;
0429 case SME::BI__builtin_sme_svmla_lane_za32_s16_vg2x1:
0430 ImmChecks.push_back(std::make_tuple(3, 6, 0));
0431   break;
0432 case SME::BI__builtin_sme_svmla_lane_za32_s16_vg2x2:
0433 ImmChecks.push_back(std::make_tuple(3, 6, 0));
0434   break;
0435 case SME::BI__builtin_sme_svmla_lane_za32_s16_vg2x4:
0436 ImmChecks.push_back(std::make_tuple(3, 6, 0));
0437   break;
0438 case SME::BI__builtin_sme_svmla_lane_za32_s8_vg4x1:
0439 ImmChecks.push_back(std::make_tuple(3, 18, 0));
0440   break;
0441 case SME::BI__builtin_sme_svmla_lane_za32_s8_vg4x2:
0442 ImmChecks.push_back(std::make_tuple(3, 18, 0));
0443   break;
0444 case SME::BI__builtin_sme_svmla_lane_za32_s8_vg4x4:
0445 ImmChecks.push_back(std::make_tuple(3, 18, 0));
0446   break;
0447 case SME::BI__builtin_sme_svmla_lane_za32_u16_vg2x1:
0448 ImmChecks.push_back(std::make_tuple(3, 6, 0));
0449   break;
0450 case SME::BI__builtin_sme_svmla_lane_za32_u16_vg2x2:
0451 ImmChecks.push_back(std::make_tuple(3, 6, 0));
0452   break;
0453 case SME::BI__builtin_sme_svmla_lane_za32_u16_vg2x4:
0454 ImmChecks.push_back(std::make_tuple(3, 6, 0));
0455   break;
0456 case SME::BI__builtin_sme_svmla_lane_za32_u8_vg4x1:
0457 ImmChecks.push_back(std::make_tuple(3, 18, 0));
0458   break;
0459 case SME::BI__builtin_sme_svmla_lane_za32_u8_vg4x2:
0460 ImmChecks.push_back(std::make_tuple(3, 18, 0));
0461   break;
0462 case SME::BI__builtin_sme_svmla_lane_za32_u8_vg4x4:
0463 ImmChecks.push_back(std::make_tuple(3, 18, 0));
0464   break;
0465 case SME::BI__builtin_sme_svmla_lane_za64_f64_vg1x2:
0466 ImmChecks.push_back(std::make_tuple(3, 14, 0));
0467   break;
0468 case SME::BI__builtin_sme_svmla_lane_za64_f64_vg1x4:
0469 ImmChecks.push_back(std::make_tuple(3, 14, 0));
0470   break;
0471 case SME::BI__builtin_sme_svmla_lane_za64_s16_vg4x1:
0472 ImmChecks.push_back(std::make_tuple(3, 6, 0));
0473   break;
0474 case SME::BI__builtin_sme_svmla_lane_za64_s16_vg4x2:
0475 ImmChecks.push_back(std::make_tuple(3, 6, 0));
0476   break;
0477 case SME::BI__builtin_sme_svmla_lane_za64_s16_vg4x4:
0478 ImmChecks.push_back(std::make_tuple(3, 6, 0));
0479   break;
0480 case SME::BI__builtin_sme_svmla_lane_za64_u16_vg4x1:
0481 ImmChecks.push_back(std::make_tuple(3, 6, 0));
0482   break;
0483 case SME::BI__builtin_sme_svmla_lane_za64_u16_vg4x2:
0484 ImmChecks.push_back(std::make_tuple(3, 6, 0));
0485   break;
0486 case SME::BI__builtin_sme_svmla_lane_za64_u16_vg4x4:
0487 ImmChecks.push_back(std::make_tuple(3, 6, 0));
0488   break;
0489 case SME::BI__builtin_sme_svmls_lane_za16_bf16_vg1x2:
0490 ImmChecks.push_back(std::make_tuple(3, 6, 0));
0491   break;
0492 case SME::BI__builtin_sme_svmls_lane_za16_bf16_vg1x4:
0493 ImmChecks.push_back(std::make_tuple(3, 6, 0));
0494   break;
0495 case SME::BI__builtin_sme_svmls_lane_za16_f16_vg1x2:
0496 ImmChecks.push_back(std::make_tuple(3, 6, 0));
0497   break;
0498 case SME::BI__builtin_sme_svmls_lane_za16_f16_vg1x4:
0499 ImmChecks.push_back(std::make_tuple(3, 6, 0));
0500   break;
0501 case SME::BI__builtin_sme_svmls_lane_za32_bf16_vg2x1:
0502 ImmChecks.push_back(std::make_tuple(3, 6, 0));
0503   break;
0504 case SME::BI__builtin_sme_svmls_lane_za32_bf16_vg2x2:
0505 ImmChecks.push_back(std::make_tuple(3, 6, 0));
0506   break;
0507 case SME::BI__builtin_sme_svmls_lane_za32_bf16_vg2x4:
0508 ImmChecks.push_back(std::make_tuple(3, 6, 0));
0509   break;
0510 case SME::BI__builtin_sme_svmls_lane_za32_f16_vg2x1:
0511 ImmChecks.push_back(std::make_tuple(3, 6, 0));
0512   break;
0513 case SME::BI__builtin_sme_svmls_lane_za32_f16_vg2x2:
0514 ImmChecks.push_back(std::make_tuple(3, 6, 0));
0515   break;
0516 case SME::BI__builtin_sme_svmls_lane_za32_f16_vg2x4:
0517 ImmChecks.push_back(std::make_tuple(3, 6, 0));
0518   break;
0519 case SME::BI__builtin_sme_svmls_lane_za32_f32_vg1x2:
0520 ImmChecks.push_back(std::make_tuple(3, 16, 0));
0521   break;
0522 case SME::BI__builtin_sme_svmls_lane_za32_f32_vg1x4:
0523 ImmChecks.push_back(std::make_tuple(3, 16, 0));
0524   break;
0525 case SME::BI__builtin_sme_svmls_lane_za32_s16_vg2x1:
0526 ImmChecks.push_back(std::make_tuple(3, 6, 0));
0527   break;
0528 case SME::BI__builtin_sme_svmls_lane_za32_s16_vg2x2:
0529 ImmChecks.push_back(std::make_tuple(3, 6, 0));
0530   break;
0531 case SME::BI__builtin_sme_svmls_lane_za32_s16_vg2x4:
0532 ImmChecks.push_back(std::make_tuple(3, 6, 0));
0533   break;
0534 case SME::BI__builtin_sme_svmls_lane_za32_s8_vg4x1:
0535 ImmChecks.push_back(std::make_tuple(3, 18, 0));
0536   break;
0537 case SME::BI__builtin_sme_svmls_lane_za32_s8_vg4x2:
0538 ImmChecks.push_back(std::make_tuple(3, 18, 0));
0539   break;
0540 case SME::BI__builtin_sme_svmls_lane_za32_s8_vg4x4:
0541 ImmChecks.push_back(std::make_tuple(3, 18, 0));
0542   break;
0543 case SME::BI__builtin_sme_svmls_lane_za32_u16_vg2x1:
0544 ImmChecks.push_back(std::make_tuple(3, 6, 0));
0545   break;
0546 case SME::BI__builtin_sme_svmls_lane_za32_u16_vg2x2:
0547 ImmChecks.push_back(std::make_tuple(3, 6, 0));
0548   break;
0549 case SME::BI__builtin_sme_svmls_lane_za32_u16_vg2x4:
0550 ImmChecks.push_back(std::make_tuple(3, 6, 0));
0551   break;
0552 case SME::BI__builtin_sme_svmls_lane_za32_u8_vg4x1:
0553 ImmChecks.push_back(std::make_tuple(3, 18, 0));
0554   break;
0555 case SME::BI__builtin_sme_svmls_lane_za32_u8_vg4x2:
0556 ImmChecks.push_back(std::make_tuple(3, 18, 0));
0557   break;
0558 case SME::BI__builtin_sme_svmls_lane_za32_u8_vg4x4:
0559 ImmChecks.push_back(std::make_tuple(3, 18, 0));
0560   break;
0561 case SME::BI__builtin_sme_svmls_lane_za64_f64_vg1x2:
0562 ImmChecks.push_back(std::make_tuple(3, 14, 0));
0563   break;
0564 case SME::BI__builtin_sme_svmls_lane_za64_f64_vg1x4:
0565 ImmChecks.push_back(std::make_tuple(3, 14, 0));
0566   break;
0567 case SME::BI__builtin_sme_svmls_lane_za64_s16_vg4x1:
0568 ImmChecks.push_back(std::make_tuple(3, 6, 0));
0569   break;
0570 case SME::BI__builtin_sme_svmls_lane_za64_s16_vg4x2:
0571 ImmChecks.push_back(std::make_tuple(3, 6, 0));
0572   break;
0573 case SME::BI__builtin_sme_svmls_lane_za64_s16_vg4x4:
0574 ImmChecks.push_back(std::make_tuple(3, 6, 0));
0575   break;
0576 case SME::BI__builtin_sme_svmls_lane_za64_u16_vg4x1:
0577 ImmChecks.push_back(std::make_tuple(3, 6, 0));
0578   break;
0579 case SME::BI__builtin_sme_svmls_lane_za64_u16_vg4x2:
0580 ImmChecks.push_back(std::make_tuple(3, 6, 0));
0581   break;
0582 case SME::BI__builtin_sme_svmls_lane_za64_u16_vg4x4:
0583 ImmChecks.push_back(std::make_tuple(3, 6, 0));
0584   break;
0585 case SME::BI__builtin_sme_svmopa_za16_bf16_m:
0586 ImmChecks.push_back(std::make_tuple(0, 14, 0));
0587   break;
0588 case SME::BI__builtin_sme_svmopa_za16_f16_m:
0589 ImmChecks.push_back(std::make_tuple(0, 14, 0));
0590   break;
0591 case SME::BI__builtin_sme_svmopa_za16_mf8_m_fpm:
0592 ImmChecks.push_back(std::make_tuple(0, 14, 0));
0593   break;
0594 case SME::BI__builtin_sme_svmopa_za32_bf16_m:
0595 ImmChecks.push_back(std::make_tuple(0, 16, 0));
0596   break;
0597 case SME::BI__builtin_sme_svmopa_za32_f16_m:
0598 ImmChecks.push_back(std::make_tuple(0, 16, 0));
0599   break;
0600 case SME::BI__builtin_sme_svmopa_za32_f32_m:
0601 ImmChecks.push_back(std::make_tuple(0, 16, 0));
0602   break;
0603 case SME::BI__builtin_sme_svmopa_za32_mf8_m_fpm:
0604 ImmChecks.push_back(std::make_tuple(0, 16, 0));
0605   break;
0606 case SME::BI__builtin_sme_svmopa_za32_s16_m:
0607 ImmChecks.push_back(std::make_tuple(0, 16, 0));
0608   break;
0609 case SME::BI__builtin_sme_svmopa_za32_s8_m:
0610 ImmChecks.push_back(std::make_tuple(0, 16, 0));
0611   break;
0612 case SME::BI__builtin_sme_svmopa_za32_u16_m:
0613 ImmChecks.push_back(std::make_tuple(0, 16, 0));
0614   break;
0615 case SME::BI__builtin_sme_svmopa_za32_u8_m:
0616 ImmChecks.push_back(std::make_tuple(0, 16, 0));
0617   break;
0618 case SME::BI__builtin_sme_svmopa_za64_f64_m:
0619 ImmChecks.push_back(std::make_tuple(0, 6, 0));
0620   break;
0621 case SME::BI__builtin_sme_svmopa_za64_s16_m:
0622 ImmChecks.push_back(std::make_tuple(0, 6, 0));
0623   break;
0624 case SME::BI__builtin_sme_svmopa_za64_u16_m:
0625 ImmChecks.push_back(std::make_tuple(0, 6, 0));
0626   break;
0627 case SME::BI__builtin_sme_svmops_za16_bf16_m:
0628 ImmChecks.push_back(std::make_tuple(0, 14, 0));
0629   break;
0630 case SME::BI__builtin_sme_svmops_za16_f16_m:
0631 ImmChecks.push_back(std::make_tuple(0, 14, 0));
0632   break;
0633 case SME::BI__builtin_sme_svmops_za32_bf16_m:
0634 ImmChecks.push_back(std::make_tuple(0, 16, 0));
0635   break;
0636 case SME::BI__builtin_sme_svmops_za32_f16_m:
0637 ImmChecks.push_back(std::make_tuple(0, 16, 0));
0638   break;
0639 case SME::BI__builtin_sme_svmops_za32_f32_m:
0640 ImmChecks.push_back(std::make_tuple(0, 16, 0));
0641   break;
0642 case SME::BI__builtin_sme_svmops_za32_s16_m:
0643 ImmChecks.push_back(std::make_tuple(0, 16, 0));
0644   break;
0645 case SME::BI__builtin_sme_svmops_za32_s8_m:
0646 ImmChecks.push_back(std::make_tuple(0, 16, 0));
0647   break;
0648 case SME::BI__builtin_sme_svmops_za32_u16_m:
0649 ImmChecks.push_back(std::make_tuple(0, 16, 0));
0650   break;
0651 case SME::BI__builtin_sme_svmops_za32_u8_m:
0652 ImmChecks.push_back(std::make_tuple(0, 16, 0));
0653   break;
0654 case SME::BI__builtin_sme_svmops_za64_f64_m:
0655 ImmChecks.push_back(std::make_tuple(0, 6, 0));
0656   break;
0657 case SME::BI__builtin_sme_svmops_za64_s16_m:
0658 ImmChecks.push_back(std::make_tuple(0, 6, 0));
0659   break;
0660 case SME::BI__builtin_sme_svmops_za64_u16_m:
0661 ImmChecks.push_back(std::make_tuple(0, 6, 0));
0662   break;
0663 case SME::BI__builtin_sme_svread_hor_za128_bf16_m:
0664 ImmChecks.push_back(std::make_tuple(2, 18, 0));
0665   break;
0666 case SME::BI__builtin_sme_svread_hor_za128_f16_m:
0667 ImmChecks.push_back(std::make_tuple(2, 18, 0));
0668   break;
0669 case SME::BI__builtin_sme_svread_hor_za128_f32_m:
0670 ImmChecks.push_back(std::make_tuple(2, 18, 0));
0671   break;
0672 case SME::BI__builtin_sme_svread_hor_za128_f64_m:
0673 ImmChecks.push_back(std::make_tuple(2, 18, 0));
0674   break;
0675 case SME::BI__builtin_sme_svread_hor_za128_s16_m:
0676 ImmChecks.push_back(std::make_tuple(2, 18, 0));
0677   break;
0678 case SME::BI__builtin_sme_svread_hor_za128_s32_m:
0679 ImmChecks.push_back(std::make_tuple(2, 18, 0));
0680   break;
0681 case SME::BI__builtin_sme_svread_hor_za128_s64_m:
0682 ImmChecks.push_back(std::make_tuple(2, 18, 0));
0683   break;
0684 case SME::BI__builtin_sme_svread_hor_za128_s8_m:
0685 ImmChecks.push_back(std::make_tuple(2, 18, 0));
0686   break;
0687 case SME::BI__builtin_sme_svread_hor_za128_u16_m:
0688 ImmChecks.push_back(std::make_tuple(2, 18, 0));
0689   break;
0690 case SME::BI__builtin_sme_svread_hor_za128_u32_m:
0691 ImmChecks.push_back(std::make_tuple(2, 18, 0));
0692   break;
0693 case SME::BI__builtin_sme_svread_hor_za128_u64_m:
0694 ImmChecks.push_back(std::make_tuple(2, 18, 0));
0695   break;
0696 case SME::BI__builtin_sme_svread_hor_za128_u8_m:
0697 ImmChecks.push_back(std::make_tuple(2, 18, 0));
0698   break;
0699 case SME::BI__builtin_sme_svread_hor_za16_bf16_m:
0700 ImmChecks.push_back(std::make_tuple(2, 14, 0));
0701   break;
0702 case SME::BI__builtin_sme_svread_hor_za16_bf16_vg2:
0703 ImmChecks.push_back(std::make_tuple(0, 14, 0));
0704   break;
0705 case SME::BI__builtin_sme_svread_hor_za16_bf16_vg4:
0706 ImmChecks.push_back(std::make_tuple(0, 14, 0));
0707   break;
0708 case SME::BI__builtin_sme_svread_hor_za16_f16_m:
0709 ImmChecks.push_back(std::make_tuple(2, 14, 0));
0710   break;
0711 case SME::BI__builtin_sme_svread_hor_za16_f16_vg2:
0712 ImmChecks.push_back(std::make_tuple(0, 14, 0));
0713   break;
0714 case SME::BI__builtin_sme_svread_hor_za16_f16_vg4:
0715 ImmChecks.push_back(std::make_tuple(0, 14, 0));
0716   break;
0717 case SME::BI__builtin_sme_svread_hor_za16_s16_m:
0718 ImmChecks.push_back(std::make_tuple(2, 14, 0));
0719   break;
0720 case SME::BI__builtin_sme_svread_hor_za16_s16_vg2:
0721 ImmChecks.push_back(std::make_tuple(0, 14, 0));
0722   break;
0723 case SME::BI__builtin_sme_svread_hor_za16_s16_vg4:
0724 ImmChecks.push_back(std::make_tuple(0, 14, 0));
0725   break;
0726 case SME::BI__builtin_sme_svread_hor_za16_u16_m:
0727 ImmChecks.push_back(std::make_tuple(2, 14, 0));
0728   break;
0729 case SME::BI__builtin_sme_svread_hor_za16_u16_vg2:
0730 ImmChecks.push_back(std::make_tuple(0, 14, 0));
0731   break;
0732 case SME::BI__builtin_sme_svread_hor_za16_u16_vg4:
0733 ImmChecks.push_back(std::make_tuple(0, 14, 0));
0734   break;
0735 case SME::BI__builtin_sme_svread_hor_za32_f32_m:
0736 ImmChecks.push_back(std::make_tuple(2, 16, 0));
0737   break;
0738 case SME::BI__builtin_sme_svread_hor_za32_f32_vg2:
0739 ImmChecks.push_back(std::make_tuple(0, 16, 0));
0740   break;
0741 case SME::BI__builtin_sme_svread_hor_za32_f32_vg4:
0742 ImmChecks.push_back(std::make_tuple(0, 16, 0));
0743   break;
0744 case SME::BI__builtin_sme_svread_hor_za32_s32_m:
0745 ImmChecks.push_back(std::make_tuple(2, 16, 0));
0746   break;
0747 case SME::BI__builtin_sme_svread_hor_za32_s32_vg2:
0748 ImmChecks.push_back(std::make_tuple(0, 16, 0));
0749   break;
0750 case SME::BI__builtin_sme_svread_hor_za32_s32_vg4:
0751 ImmChecks.push_back(std::make_tuple(0, 16, 0));
0752   break;
0753 case SME::BI__builtin_sme_svread_hor_za32_u32_m:
0754 ImmChecks.push_back(std::make_tuple(2, 16, 0));
0755   break;
0756 case SME::BI__builtin_sme_svread_hor_za32_u32_vg2:
0757 ImmChecks.push_back(std::make_tuple(0, 16, 0));
0758   break;
0759 case SME::BI__builtin_sme_svread_hor_za32_u32_vg4:
0760 ImmChecks.push_back(std::make_tuple(0, 16, 0));
0761   break;
0762 case SME::BI__builtin_sme_svread_hor_za64_f64_m:
0763 ImmChecks.push_back(std::make_tuple(2, 6, 0));
0764   break;
0765 case SME::BI__builtin_sme_svread_hor_za64_f64_vg2:
0766 ImmChecks.push_back(std::make_tuple(0, 6, 0));
0767   break;
0768 case SME::BI__builtin_sme_svread_hor_za64_f64_vg4:
0769 ImmChecks.push_back(std::make_tuple(0, 6, 0));
0770   break;
0771 case SME::BI__builtin_sme_svread_hor_za64_s64_m:
0772 ImmChecks.push_back(std::make_tuple(2, 6, 0));
0773   break;
0774 case SME::BI__builtin_sme_svread_hor_za64_s64_vg2:
0775 ImmChecks.push_back(std::make_tuple(0, 6, 0));
0776   break;
0777 case SME::BI__builtin_sme_svread_hor_za64_s64_vg4:
0778 ImmChecks.push_back(std::make_tuple(0, 6, 0));
0779   break;
0780 case SME::BI__builtin_sme_svread_hor_za64_u64_m:
0781 ImmChecks.push_back(std::make_tuple(2, 6, 0));
0782   break;
0783 case SME::BI__builtin_sme_svread_hor_za64_u64_vg2:
0784 ImmChecks.push_back(std::make_tuple(0, 6, 0));
0785   break;
0786 case SME::BI__builtin_sme_svread_hor_za64_u64_vg4:
0787 ImmChecks.push_back(std::make_tuple(0, 6, 0));
0788   break;
0789 case SME::BI__builtin_sme_svread_hor_za8_s8_m:
0790 ImmChecks.push_back(std::make_tuple(2, 17, 0));
0791   break;
0792 case SME::BI__builtin_sme_svread_hor_za8_s8_vg2:
0793 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0794   break;
0795 case SME::BI__builtin_sme_svread_hor_za8_s8_vg4:
0796 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0797   break;
0798 case SME::BI__builtin_sme_svread_hor_za8_u8_m:
0799 ImmChecks.push_back(std::make_tuple(2, 17, 0));
0800   break;
0801 case SME::BI__builtin_sme_svread_hor_za8_u8_vg2:
0802 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0803   break;
0804 case SME::BI__builtin_sme_svread_hor_za8_u8_vg4:
0805 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0806   break;
0807 case SME::BI__builtin_sme_svread_ver_za128_bf16_m:
0808 ImmChecks.push_back(std::make_tuple(2, 18, 0));
0809   break;
0810 case SME::BI__builtin_sme_svread_ver_za128_f16_m:
0811 ImmChecks.push_back(std::make_tuple(2, 18, 0));
0812   break;
0813 case SME::BI__builtin_sme_svread_ver_za128_f32_m:
0814 ImmChecks.push_back(std::make_tuple(2, 18, 0));
0815   break;
0816 case SME::BI__builtin_sme_svread_ver_za128_f64_m:
0817 ImmChecks.push_back(std::make_tuple(2, 18, 0));
0818   break;
0819 case SME::BI__builtin_sme_svread_ver_za128_s16_m:
0820 ImmChecks.push_back(std::make_tuple(2, 18, 0));
0821   break;
0822 case SME::BI__builtin_sme_svread_ver_za128_s32_m:
0823 ImmChecks.push_back(std::make_tuple(2, 18, 0));
0824   break;
0825 case SME::BI__builtin_sme_svread_ver_za128_s64_m:
0826 ImmChecks.push_back(std::make_tuple(2, 18, 0));
0827   break;
0828 case SME::BI__builtin_sme_svread_ver_za128_s8_m:
0829 ImmChecks.push_back(std::make_tuple(2, 18, 0));
0830   break;
0831 case SME::BI__builtin_sme_svread_ver_za128_u16_m:
0832 ImmChecks.push_back(std::make_tuple(2, 18, 0));
0833   break;
0834 case SME::BI__builtin_sme_svread_ver_za128_u32_m:
0835 ImmChecks.push_back(std::make_tuple(2, 18, 0));
0836   break;
0837 case SME::BI__builtin_sme_svread_ver_za128_u64_m:
0838 ImmChecks.push_back(std::make_tuple(2, 18, 0));
0839   break;
0840 case SME::BI__builtin_sme_svread_ver_za128_u8_m:
0841 ImmChecks.push_back(std::make_tuple(2, 18, 0));
0842   break;
0843 case SME::BI__builtin_sme_svread_ver_za16_bf16_m:
0844 ImmChecks.push_back(std::make_tuple(2, 14, 0));
0845   break;
0846 case SME::BI__builtin_sme_svread_ver_za16_bf16_vg2:
0847 ImmChecks.push_back(std::make_tuple(0, 14, 0));
0848   break;
0849 case SME::BI__builtin_sme_svread_ver_za16_bf16_vg4:
0850 ImmChecks.push_back(std::make_tuple(0, 14, 0));
0851   break;
0852 case SME::BI__builtin_sme_svread_ver_za16_f16_m:
0853 ImmChecks.push_back(std::make_tuple(2, 14, 0));
0854   break;
0855 case SME::BI__builtin_sme_svread_ver_za16_f16_vg2:
0856 ImmChecks.push_back(std::make_tuple(0, 14, 0));
0857   break;
0858 case SME::BI__builtin_sme_svread_ver_za16_f16_vg4:
0859 ImmChecks.push_back(std::make_tuple(0, 14, 0));
0860   break;
0861 case SME::BI__builtin_sme_svread_ver_za16_s16_m:
0862 ImmChecks.push_back(std::make_tuple(2, 14, 0));
0863   break;
0864 case SME::BI__builtin_sme_svread_ver_za16_s16_vg2:
0865 ImmChecks.push_back(std::make_tuple(0, 14, 0));
0866   break;
0867 case SME::BI__builtin_sme_svread_ver_za16_s16_vg4:
0868 ImmChecks.push_back(std::make_tuple(0, 14, 0));
0869   break;
0870 case SME::BI__builtin_sme_svread_ver_za16_u16_m:
0871 ImmChecks.push_back(std::make_tuple(2, 14, 0));
0872   break;
0873 case SME::BI__builtin_sme_svread_ver_za16_u16_vg2:
0874 ImmChecks.push_back(std::make_tuple(0, 14, 0));
0875   break;
0876 case SME::BI__builtin_sme_svread_ver_za16_u16_vg4:
0877 ImmChecks.push_back(std::make_tuple(0, 14, 0));
0878   break;
0879 case SME::BI__builtin_sme_svread_ver_za32_f32_m:
0880 ImmChecks.push_back(std::make_tuple(2, 16, 0));
0881   break;
0882 case SME::BI__builtin_sme_svread_ver_za32_f32_vg2:
0883 ImmChecks.push_back(std::make_tuple(0, 16, 0));
0884   break;
0885 case SME::BI__builtin_sme_svread_ver_za32_f32_vg4:
0886 ImmChecks.push_back(std::make_tuple(0, 16, 0));
0887   break;
0888 case SME::BI__builtin_sme_svread_ver_za32_s32_m:
0889 ImmChecks.push_back(std::make_tuple(2, 16, 0));
0890   break;
0891 case SME::BI__builtin_sme_svread_ver_za32_s32_vg2:
0892 ImmChecks.push_back(std::make_tuple(0, 16, 0));
0893   break;
0894 case SME::BI__builtin_sme_svread_ver_za32_s32_vg4:
0895 ImmChecks.push_back(std::make_tuple(0, 16, 0));
0896   break;
0897 case SME::BI__builtin_sme_svread_ver_za32_u32_m:
0898 ImmChecks.push_back(std::make_tuple(2, 16, 0));
0899   break;
0900 case SME::BI__builtin_sme_svread_ver_za32_u32_vg2:
0901 ImmChecks.push_back(std::make_tuple(0, 16, 0));
0902   break;
0903 case SME::BI__builtin_sme_svread_ver_za32_u32_vg4:
0904 ImmChecks.push_back(std::make_tuple(0, 16, 0));
0905   break;
0906 case SME::BI__builtin_sme_svread_ver_za64_f64_m:
0907 ImmChecks.push_back(std::make_tuple(2, 6, 0));
0908   break;
0909 case SME::BI__builtin_sme_svread_ver_za64_f64_vg2:
0910 ImmChecks.push_back(std::make_tuple(0, 6, 0));
0911   break;
0912 case SME::BI__builtin_sme_svread_ver_za64_f64_vg4:
0913 ImmChecks.push_back(std::make_tuple(0, 6, 0));
0914   break;
0915 case SME::BI__builtin_sme_svread_ver_za64_s64_m:
0916 ImmChecks.push_back(std::make_tuple(2, 6, 0));
0917   break;
0918 case SME::BI__builtin_sme_svread_ver_za64_s64_vg2:
0919 ImmChecks.push_back(std::make_tuple(0, 6, 0));
0920   break;
0921 case SME::BI__builtin_sme_svread_ver_za64_s64_vg4:
0922 ImmChecks.push_back(std::make_tuple(0, 6, 0));
0923   break;
0924 case SME::BI__builtin_sme_svread_ver_za64_u64_m:
0925 ImmChecks.push_back(std::make_tuple(2, 6, 0));
0926   break;
0927 case SME::BI__builtin_sme_svread_ver_za64_u64_vg2:
0928 ImmChecks.push_back(std::make_tuple(0, 6, 0));
0929   break;
0930 case SME::BI__builtin_sme_svread_ver_za64_u64_vg4:
0931 ImmChecks.push_back(std::make_tuple(0, 6, 0));
0932   break;
0933 case SME::BI__builtin_sme_svread_ver_za8_s8_m:
0934 ImmChecks.push_back(std::make_tuple(2, 17, 0));
0935   break;
0936 case SME::BI__builtin_sme_svread_ver_za8_s8_vg2:
0937 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0938   break;
0939 case SME::BI__builtin_sme_svread_ver_za8_s8_vg4:
0940 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0941   break;
0942 case SME::BI__builtin_sme_svread_ver_za8_u8_m:
0943 ImmChecks.push_back(std::make_tuple(2, 17, 0));
0944   break;
0945 case SME::BI__builtin_sme_svread_ver_za8_u8_vg2:
0946 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0947   break;
0948 case SME::BI__builtin_sme_svread_ver_za8_u8_vg4:
0949 ImmChecks.push_back(std::make_tuple(0, 17, 0));
0950   break;
0951 case SME::BI__builtin_sme_svreadz_hor_za128_bf16:
0952 ImmChecks.push_back(std::make_tuple(0, 18, 0));
0953   break;
0954 case SME::BI__builtin_sme_svreadz_hor_za128_f16:
0955 ImmChecks.push_back(std::make_tuple(0, 18, 0));
0956   break;
0957 case SME::BI__builtin_sme_svreadz_hor_za128_f32:
0958 ImmChecks.push_back(std::make_tuple(0, 18, 0));
0959   break;
0960 case SME::BI__builtin_sme_svreadz_hor_za128_f64:
0961 ImmChecks.push_back(std::make_tuple(0, 18, 0));
0962   break;
0963 case SME::BI__builtin_sme_svreadz_hor_za128_s16:
0964 ImmChecks.push_back(std::make_tuple(0, 18, 0));
0965   break;
0966 case SME::BI__builtin_sme_svreadz_hor_za128_s32:
0967 ImmChecks.push_back(std::make_tuple(0, 18, 0));
0968   break;
0969 case SME::BI__builtin_sme_svreadz_hor_za128_s64:
0970 ImmChecks.push_back(std::make_tuple(0, 18, 0));
0971   break;
0972 case SME::BI__builtin_sme_svreadz_hor_za128_s8:
0973 ImmChecks.push_back(std::make_tuple(0, 18, 0));
0974   break;
0975 case SME::BI__builtin_sme_svreadz_hor_za128_u16:
0976 ImmChecks.push_back(std::make_tuple(0, 18, 0));
0977   break;
0978 case SME::BI__builtin_sme_svreadz_hor_za128_u32:
0979 ImmChecks.push_back(std::make_tuple(0, 18, 0));
0980   break;
0981 case SME::BI__builtin_sme_svreadz_hor_za128_u64:
0982 ImmChecks.push_back(std::make_tuple(0, 18, 0));
0983   break;
0984 case SME::BI__builtin_sme_svreadz_hor_za128_u8:
0985 ImmChecks.push_back(std::make_tuple(0, 18, 0));
0986   break;
0987 case SME::BI__builtin_sme_svreadz_hor_za16_bf16:
0988 ImmChecks.push_back(std::make_tuple(0, 14, 0));
0989   break;
0990 case SME::BI__builtin_sme_svreadz_hor_za16_bf16_vg2:
0991 ImmChecks.push_back(std::make_tuple(0, 14, 0));
0992   break;
0993 case SME::BI__builtin_sme_svreadz_hor_za16_bf16_vg4:
0994 ImmChecks.push_back(std::make_tuple(0, 14, 0));
0995   break;
0996 case SME::BI__builtin_sme_svreadz_hor_za16_f16:
0997 ImmChecks.push_back(std::make_tuple(0, 14, 0));
0998   break;
0999 case SME::BI__builtin_sme_svreadz_hor_za16_f16_vg2:
1000 ImmChecks.push_back(std::make_tuple(0, 14, 0));
1001   break;
1002 case SME::BI__builtin_sme_svreadz_hor_za16_f16_vg4:
1003 ImmChecks.push_back(std::make_tuple(0, 14, 0));
1004   break;
1005 case SME::BI__builtin_sme_svreadz_hor_za16_s16:
1006 ImmChecks.push_back(std::make_tuple(0, 14, 0));
1007   break;
1008 case SME::BI__builtin_sme_svreadz_hor_za16_s16_vg2:
1009 ImmChecks.push_back(std::make_tuple(0, 14, 0));
1010   break;
1011 case SME::BI__builtin_sme_svreadz_hor_za16_s16_vg4:
1012 ImmChecks.push_back(std::make_tuple(0, 14, 0));
1013   break;
1014 case SME::BI__builtin_sme_svreadz_hor_za16_u16:
1015 ImmChecks.push_back(std::make_tuple(0, 14, 0));
1016   break;
1017 case SME::BI__builtin_sme_svreadz_hor_za16_u16_vg2:
1018 ImmChecks.push_back(std::make_tuple(0, 14, 0));
1019   break;
1020 case SME::BI__builtin_sme_svreadz_hor_za16_u16_vg4:
1021 ImmChecks.push_back(std::make_tuple(0, 14, 0));
1022   break;
1023 case SME::BI__builtin_sme_svreadz_hor_za32_f32:
1024 ImmChecks.push_back(std::make_tuple(0, 16, 0));
1025   break;
1026 case SME::BI__builtin_sme_svreadz_hor_za32_f32_vg2:
1027 ImmChecks.push_back(std::make_tuple(0, 16, 0));
1028   break;
1029 case SME::BI__builtin_sme_svreadz_hor_za32_f32_vg4:
1030 ImmChecks.push_back(std::make_tuple(0, 16, 0));
1031   break;
1032 case SME::BI__builtin_sme_svreadz_hor_za32_s32:
1033 ImmChecks.push_back(std::make_tuple(0, 16, 0));
1034   break;
1035 case SME::BI__builtin_sme_svreadz_hor_za32_s32_vg2:
1036 ImmChecks.push_back(std::make_tuple(0, 16, 0));
1037   break;
1038 case SME::BI__builtin_sme_svreadz_hor_za32_s32_vg4:
1039 ImmChecks.push_back(std::make_tuple(0, 16, 0));
1040   break;
1041 case SME::BI__builtin_sme_svreadz_hor_za32_u32:
1042 ImmChecks.push_back(std::make_tuple(0, 16, 0));
1043   break;
1044 case SME::BI__builtin_sme_svreadz_hor_za32_u32_vg2:
1045 ImmChecks.push_back(std::make_tuple(0, 16, 0));
1046   break;
1047 case SME::BI__builtin_sme_svreadz_hor_za32_u32_vg4:
1048 ImmChecks.push_back(std::make_tuple(0, 16, 0));
1049   break;
1050 case SME::BI__builtin_sme_svreadz_hor_za64_f64:
1051 ImmChecks.push_back(std::make_tuple(0, 6, 0));
1052   break;
1053 case SME::BI__builtin_sme_svreadz_hor_za64_f64_vg2:
1054 ImmChecks.push_back(std::make_tuple(0, 6, 0));
1055   break;
1056 case SME::BI__builtin_sme_svreadz_hor_za64_f64_vg4:
1057 ImmChecks.push_back(std::make_tuple(0, 6, 0));
1058   break;
1059 case SME::BI__builtin_sme_svreadz_hor_za64_s64:
1060 ImmChecks.push_back(std::make_tuple(0, 6, 0));
1061   break;
1062 case SME::BI__builtin_sme_svreadz_hor_za64_s64_vg2:
1063 ImmChecks.push_back(std::make_tuple(0, 6, 0));
1064   break;
1065 case SME::BI__builtin_sme_svreadz_hor_za64_s64_vg4:
1066 ImmChecks.push_back(std::make_tuple(0, 6, 0));
1067   break;
1068 case SME::BI__builtin_sme_svreadz_hor_za64_u64:
1069 ImmChecks.push_back(std::make_tuple(0, 6, 0));
1070   break;
1071 case SME::BI__builtin_sme_svreadz_hor_za64_u64_vg2:
1072 ImmChecks.push_back(std::make_tuple(0, 6, 0));
1073   break;
1074 case SME::BI__builtin_sme_svreadz_hor_za64_u64_vg4:
1075 ImmChecks.push_back(std::make_tuple(0, 6, 0));
1076   break;
1077 case SME::BI__builtin_sme_svreadz_hor_za8_s8:
1078 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1079   break;
1080 case SME::BI__builtin_sme_svreadz_hor_za8_s8_vg2:
1081 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1082   break;
1083 case SME::BI__builtin_sme_svreadz_hor_za8_s8_vg4:
1084 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1085   break;
1086 case SME::BI__builtin_sme_svreadz_hor_za8_u8:
1087 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1088   break;
1089 case SME::BI__builtin_sme_svreadz_hor_za8_u8_vg2:
1090 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1091   break;
1092 case SME::BI__builtin_sme_svreadz_hor_za8_u8_vg4:
1093 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1094   break;
1095 case SME::BI__builtin_sme_svreadz_ver_za128_bf16:
1096 ImmChecks.push_back(std::make_tuple(0, 18, 0));
1097   break;
1098 case SME::BI__builtin_sme_svreadz_ver_za128_f16:
1099 ImmChecks.push_back(std::make_tuple(0, 18, 0));
1100   break;
1101 case SME::BI__builtin_sme_svreadz_ver_za128_f32:
1102 ImmChecks.push_back(std::make_tuple(0, 18, 0));
1103   break;
1104 case SME::BI__builtin_sme_svreadz_ver_za128_f64:
1105 ImmChecks.push_back(std::make_tuple(0, 18, 0));
1106   break;
1107 case SME::BI__builtin_sme_svreadz_ver_za128_s16:
1108 ImmChecks.push_back(std::make_tuple(0, 18, 0));
1109   break;
1110 case SME::BI__builtin_sme_svreadz_ver_za128_s32:
1111 ImmChecks.push_back(std::make_tuple(0, 18, 0));
1112   break;
1113 case SME::BI__builtin_sme_svreadz_ver_za128_s64:
1114 ImmChecks.push_back(std::make_tuple(0, 18, 0));
1115   break;
1116 case SME::BI__builtin_sme_svreadz_ver_za128_s8:
1117 ImmChecks.push_back(std::make_tuple(0, 18, 0));
1118   break;
1119 case SME::BI__builtin_sme_svreadz_ver_za128_u16:
1120 ImmChecks.push_back(std::make_tuple(0, 18, 0));
1121   break;
1122 case SME::BI__builtin_sme_svreadz_ver_za128_u32:
1123 ImmChecks.push_back(std::make_tuple(0, 18, 0));
1124   break;
1125 case SME::BI__builtin_sme_svreadz_ver_za128_u64:
1126 ImmChecks.push_back(std::make_tuple(0, 18, 0));
1127   break;
1128 case SME::BI__builtin_sme_svreadz_ver_za128_u8:
1129 ImmChecks.push_back(std::make_tuple(0, 18, 0));
1130   break;
1131 case SME::BI__builtin_sme_svreadz_ver_za16_bf16:
1132 ImmChecks.push_back(std::make_tuple(0, 14, 0));
1133   break;
1134 case SME::BI__builtin_sme_svreadz_ver_za16_bf16_vg2:
1135 ImmChecks.push_back(std::make_tuple(0, 14, 0));
1136   break;
1137 case SME::BI__builtin_sme_svreadz_ver_za16_bf16_vg4:
1138 ImmChecks.push_back(std::make_tuple(0, 14, 0));
1139   break;
1140 case SME::BI__builtin_sme_svreadz_ver_za16_f16:
1141 ImmChecks.push_back(std::make_tuple(0, 14, 0));
1142   break;
1143 case SME::BI__builtin_sme_svreadz_ver_za16_f16_vg2:
1144 ImmChecks.push_back(std::make_tuple(0, 14, 0));
1145   break;
1146 case SME::BI__builtin_sme_svreadz_ver_za16_f16_vg4:
1147 ImmChecks.push_back(std::make_tuple(0, 14, 0));
1148   break;
1149 case SME::BI__builtin_sme_svreadz_ver_za16_s16:
1150 ImmChecks.push_back(std::make_tuple(0, 14, 0));
1151   break;
1152 case SME::BI__builtin_sme_svreadz_ver_za16_s16_vg2:
1153 ImmChecks.push_back(std::make_tuple(0, 14, 0));
1154   break;
1155 case SME::BI__builtin_sme_svreadz_ver_za16_s16_vg4:
1156 ImmChecks.push_back(std::make_tuple(0, 14, 0));
1157   break;
1158 case SME::BI__builtin_sme_svreadz_ver_za16_u16:
1159 ImmChecks.push_back(std::make_tuple(0, 14, 0));
1160   break;
1161 case SME::BI__builtin_sme_svreadz_ver_za16_u16_vg2:
1162 ImmChecks.push_back(std::make_tuple(0, 14, 0));
1163   break;
1164 case SME::BI__builtin_sme_svreadz_ver_za16_u16_vg4:
1165 ImmChecks.push_back(std::make_tuple(0, 14, 0));
1166   break;
1167 case SME::BI__builtin_sme_svreadz_ver_za32_f32:
1168 ImmChecks.push_back(std::make_tuple(0, 16, 0));
1169   break;
1170 case SME::BI__builtin_sme_svreadz_ver_za32_f32_vg2:
1171 ImmChecks.push_back(std::make_tuple(0, 16, 0));
1172   break;
1173 case SME::BI__builtin_sme_svreadz_ver_za32_f32_vg4:
1174 ImmChecks.push_back(std::make_tuple(0, 16, 0));
1175   break;
1176 case SME::BI__builtin_sme_svreadz_ver_za32_s32:
1177 ImmChecks.push_back(std::make_tuple(0, 16, 0));
1178   break;
1179 case SME::BI__builtin_sme_svreadz_ver_za32_s32_vg2:
1180 ImmChecks.push_back(std::make_tuple(0, 16, 0));
1181   break;
1182 case SME::BI__builtin_sme_svreadz_ver_za32_s32_vg4:
1183 ImmChecks.push_back(std::make_tuple(0, 16, 0));
1184   break;
1185 case SME::BI__builtin_sme_svreadz_ver_za32_u32:
1186 ImmChecks.push_back(std::make_tuple(0, 16, 0));
1187   break;
1188 case SME::BI__builtin_sme_svreadz_ver_za32_u32_vg2:
1189 ImmChecks.push_back(std::make_tuple(0, 16, 0));
1190   break;
1191 case SME::BI__builtin_sme_svreadz_ver_za32_u32_vg4:
1192 ImmChecks.push_back(std::make_tuple(0, 16, 0));
1193   break;
1194 case SME::BI__builtin_sme_svreadz_ver_za64_f64:
1195 ImmChecks.push_back(std::make_tuple(0, 6, 0));
1196   break;
1197 case SME::BI__builtin_sme_svreadz_ver_za64_f64_vg2:
1198 ImmChecks.push_back(std::make_tuple(0, 6, 0));
1199   break;
1200 case SME::BI__builtin_sme_svreadz_ver_za64_f64_vg4:
1201 ImmChecks.push_back(std::make_tuple(0, 6, 0));
1202   break;
1203 case SME::BI__builtin_sme_svreadz_ver_za64_s64:
1204 ImmChecks.push_back(std::make_tuple(0, 6, 0));
1205   break;
1206 case SME::BI__builtin_sme_svreadz_ver_za64_s64_vg2:
1207 ImmChecks.push_back(std::make_tuple(0, 6, 0));
1208   break;
1209 case SME::BI__builtin_sme_svreadz_ver_za64_s64_vg4:
1210 ImmChecks.push_back(std::make_tuple(0, 6, 0));
1211   break;
1212 case SME::BI__builtin_sme_svreadz_ver_za64_u64:
1213 ImmChecks.push_back(std::make_tuple(0, 6, 0));
1214   break;
1215 case SME::BI__builtin_sme_svreadz_ver_za64_u64_vg2:
1216 ImmChecks.push_back(std::make_tuple(0, 6, 0));
1217   break;
1218 case SME::BI__builtin_sme_svreadz_ver_za64_u64_vg4:
1219 ImmChecks.push_back(std::make_tuple(0, 6, 0));
1220   break;
1221 case SME::BI__builtin_sme_svreadz_ver_za8_s8:
1222 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1223   break;
1224 case SME::BI__builtin_sme_svreadz_ver_za8_s8_vg2:
1225 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1226   break;
1227 case SME::BI__builtin_sme_svreadz_ver_za8_s8_vg4:
1228 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1229   break;
1230 case SME::BI__builtin_sme_svreadz_ver_za8_u8:
1231 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1232   break;
1233 case SME::BI__builtin_sme_svreadz_ver_za8_u8_vg2:
1234 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1235   break;
1236 case SME::BI__builtin_sme_svreadz_ver_za8_u8_vg4:
1237 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1238   break;
1239 case SME::BI__builtin_sme_svst1_hor_vnum_za128:
1240 ImmChecks.push_back(std::make_tuple(0, 18, 0));
1241   break;
1242 case SME::BI__builtin_sme_svst1_hor_vnum_za16:
1243 ImmChecks.push_back(std::make_tuple(0, 14, 0));
1244   break;
1245 case SME::BI__builtin_sme_svst1_hor_vnum_za32:
1246 ImmChecks.push_back(std::make_tuple(0, 16, 0));
1247   break;
1248 case SME::BI__builtin_sme_svst1_hor_vnum_za64:
1249 ImmChecks.push_back(std::make_tuple(0, 6, 0));
1250   break;
1251 case SME::BI__builtin_sme_svst1_hor_vnum_za8:
1252 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1253   break;
1254 case SME::BI__builtin_sme_svst1_hor_za128:
1255 ImmChecks.push_back(std::make_tuple(0, 18, 0));
1256   break;
1257 case SME::BI__builtin_sme_svst1_hor_za16:
1258 ImmChecks.push_back(std::make_tuple(0, 14, 0));
1259   break;
1260 case SME::BI__builtin_sme_svst1_hor_za32:
1261 ImmChecks.push_back(std::make_tuple(0, 16, 0));
1262   break;
1263 case SME::BI__builtin_sme_svst1_hor_za64:
1264 ImmChecks.push_back(std::make_tuple(0, 6, 0));
1265   break;
1266 case SME::BI__builtin_sme_svst1_hor_za8:
1267 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1268   break;
1269 case SME::BI__builtin_sme_svst1_ver_vnum_za128:
1270 ImmChecks.push_back(std::make_tuple(0, 18, 0));
1271   break;
1272 case SME::BI__builtin_sme_svst1_ver_vnum_za16:
1273 ImmChecks.push_back(std::make_tuple(0, 14, 0));
1274   break;
1275 case SME::BI__builtin_sme_svst1_ver_vnum_za32:
1276 ImmChecks.push_back(std::make_tuple(0, 16, 0));
1277   break;
1278 case SME::BI__builtin_sme_svst1_ver_vnum_za64:
1279 ImmChecks.push_back(std::make_tuple(0, 6, 0));
1280   break;
1281 case SME::BI__builtin_sme_svst1_ver_vnum_za8:
1282 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1283   break;
1284 case SME::BI__builtin_sme_svst1_ver_za128:
1285 ImmChecks.push_back(std::make_tuple(0, 18, 0));
1286   break;
1287 case SME::BI__builtin_sme_svst1_ver_za16:
1288 ImmChecks.push_back(std::make_tuple(0, 14, 0));
1289   break;
1290 case SME::BI__builtin_sme_svst1_ver_za32:
1291 ImmChecks.push_back(std::make_tuple(0, 16, 0));
1292   break;
1293 case SME::BI__builtin_sme_svst1_ver_za64:
1294 ImmChecks.push_back(std::make_tuple(0, 6, 0));
1295   break;
1296 case SME::BI__builtin_sme_svst1_ver_za8:
1297 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1298   break;
1299 case SME::BI__builtin_sme_svstr_zt:
1300 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1301   break;
1302 case SME::BI__builtin_sme_svsudot_lane_za32_s8_vg1x2:
1303 ImmChecks.push_back(std::make_tuple(3, 16, 0));
1304   break;
1305 case SME::BI__builtin_sme_svsudot_lane_za32_s8_vg1x4:
1306 ImmChecks.push_back(std::make_tuple(3, 16, 0));
1307   break;
1308 case SME::BI__builtin_sme_svsumla_lane_za32_s8_vg4x1:
1309 ImmChecks.push_back(std::make_tuple(3, 18, 0));
1310   break;
1311 case SME::BI__builtin_sme_svsumla_lane_za32_s8_vg4x2:
1312 ImmChecks.push_back(std::make_tuple(3, 18, 0));
1313   break;
1314 case SME::BI__builtin_sme_svsumla_lane_za32_s8_vg4x4:
1315 ImmChecks.push_back(std::make_tuple(3, 18, 0));
1316   break;
1317 case SME::BI__builtin_sme_svsumopa_za32_s8_m:
1318 ImmChecks.push_back(std::make_tuple(0, 16, 0));
1319   break;
1320 case SME::BI__builtin_sme_svsumopa_za64_s16_m:
1321 ImmChecks.push_back(std::make_tuple(0, 6, 0));
1322   break;
1323 case SME::BI__builtin_sme_svsumops_za32_s8_m:
1324 ImmChecks.push_back(std::make_tuple(0, 16, 0));
1325   break;
1326 case SME::BI__builtin_sme_svsumops_za64_s16_m:
1327 ImmChecks.push_back(std::make_tuple(0, 6, 0));
1328   break;
1329 case SME::BI__builtin_sme_svsuvdot_lane_za32_s8_vg1x4:
1330 ImmChecks.push_back(std::make_tuple(3, 16, 0));
1331   break;
1332 case SME::BI__builtin_sme_svusdot_lane_za32_u8_vg1x2:
1333 ImmChecks.push_back(std::make_tuple(3, 16, 0));
1334   break;
1335 case SME::BI__builtin_sme_svusdot_lane_za32_u8_vg1x4:
1336 ImmChecks.push_back(std::make_tuple(3, 16, 0));
1337   break;
1338 case SME::BI__builtin_sme_svusmla_lane_za32_u8_vg4x1:
1339 ImmChecks.push_back(std::make_tuple(3, 18, 0));
1340   break;
1341 case SME::BI__builtin_sme_svusmla_lane_za32_u8_vg4x2:
1342 ImmChecks.push_back(std::make_tuple(3, 18, 0));
1343   break;
1344 case SME::BI__builtin_sme_svusmla_lane_za32_u8_vg4x4:
1345 ImmChecks.push_back(std::make_tuple(3, 18, 0));
1346   break;
1347 case SME::BI__builtin_sme_svusmopa_za32_u8_m:
1348 ImmChecks.push_back(std::make_tuple(0, 16, 0));
1349   break;
1350 case SME::BI__builtin_sme_svusmopa_za64_u16_m:
1351 ImmChecks.push_back(std::make_tuple(0, 6, 0));
1352   break;
1353 case SME::BI__builtin_sme_svusmops_za32_u8_m:
1354 ImmChecks.push_back(std::make_tuple(0, 16, 0));
1355   break;
1356 case SME::BI__builtin_sme_svusmops_za64_u16_m:
1357 ImmChecks.push_back(std::make_tuple(0, 6, 0));
1358   break;
1359 case SME::BI__builtin_sme_svusvdot_lane_za32_u8_vg1x4:
1360 ImmChecks.push_back(std::make_tuple(3, 16, 0));
1361   break;
1362 case SME::BI__builtin_sme_svvdot_lane_za16_mf8_vg1x2_fpm:
1363 ImmChecks.push_back(std::make_tuple(3, 6, 0));
1364   break;
1365 case SME::BI__builtin_sme_svvdot_lane_za32_bf16_vg1x2:
1366 ImmChecks.push_back(std::make_tuple(3, 16, 0));
1367   break;
1368 case SME::BI__builtin_sme_svvdot_lane_za32_f16_vg1x2:
1369 ImmChecks.push_back(std::make_tuple(3, 16, 0));
1370   break;
1371 case SME::BI__builtin_sme_svvdot_lane_za32_s16_vg1x2:
1372 ImmChecks.push_back(std::make_tuple(3, 16, 0));
1373   break;
1374 case SME::BI__builtin_sme_svvdot_lane_za32_s8_vg1x4:
1375 ImmChecks.push_back(std::make_tuple(3, 16, 0));
1376   break;
1377 case SME::BI__builtin_sme_svvdot_lane_za32_u16_vg1x2:
1378 ImmChecks.push_back(std::make_tuple(3, 16, 0));
1379   break;
1380 case SME::BI__builtin_sme_svvdot_lane_za32_u8_vg1x4:
1381 ImmChecks.push_back(std::make_tuple(3, 16, 0));
1382   break;
1383 case SME::BI__builtin_sme_svvdot_lane_za64_s16_vg1x4:
1384 ImmChecks.push_back(std::make_tuple(3, 14, 0));
1385   break;
1386 case SME::BI__builtin_sme_svvdot_lane_za64_u16_vg1x4:
1387 ImmChecks.push_back(std::make_tuple(3, 14, 0));
1388   break;
1389 case SME::BI__builtin_sme_svvdotb_lane_za32_mf8_vg1x4_fpm:
1390 ImmChecks.push_back(std::make_tuple(3, 16, 0));
1391   break;
1392 case SME::BI__builtin_sme_svvdott_lane_za32_mf8_vg1x4_fpm:
1393 ImmChecks.push_back(std::make_tuple(3, 16, 0));
1394   break;
1395 case SME::BI__builtin_sme_svwrite_hor_za128_bf16_m:
1396 ImmChecks.push_back(std::make_tuple(0, 18, 0));
1397   break;
1398 case SME::BI__builtin_sme_svwrite_hor_za128_f16_m:
1399 ImmChecks.push_back(std::make_tuple(0, 18, 0));
1400   break;
1401 case SME::BI__builtin_sme_svwrite_hor_za128_f32_m:
1402 ImmChecks.push_back(std::make_tuple(0, 18, 0));
1403   break;
1404 case SME::BI__builtin_sme_svwrite_hor_za128_f64_m:
1405 ImmChecks.push_back(std::make_tuple(0, 18, 0));
1406   break;
1407 case SME::BI__builtin_sme_svwrite_hor_za128_s16_m:
1408 ImmChecks.push_back(std::make_tuple(0, 18, 0));
1409   break;
1410 case SME::BI__builtin_sme_svwrite_hor_za128_s32_m:
1411 ImmChecks.push_back(std::make_tuple(0, 18, 0));
1412   break;
1413 case SME::BI__builtin_sme_svwrite_hor_za128_s64_m:
1414 ImmChecks.push_back(std::make_tuple(0, 18, 0));
1415   break;
1416 case SME::BI__builtin_sme_svwrite_hor_za128_s8_m:
1417 ImmChecks.push_back(std::make_tuple(0, 18, 0));
1418   break;
1419 case SME::BI__builtin_sme_svwrite_hor_za128_u16_m:
1420 ImmChecks.push_back(std::make_tuple(0, 18, 0));
1421   break;
1422 case SME::BI__builtin_sme_svwrite_hor_za128_u32_m:
1423 ImmChecks.push_back(std::make_tuple(0, 18, 0));
1424   break;
1425 case SME::BI__builtin_sme_svwrite_hor_za128_u64_m:
1426 ImmChecks.push_back(std::make_tuple(0, 18, 0));
1427   break;
1428 case SME::BI__builtin_sme_svwrite_hor_za128_u8_m:
1429 ImmChecks.push_back(std::make_tuple(0, 18, 0));
1430   break;
1431 case SME::BI__builtin_sme_svwrite_hor_za16_bf16_m:
1432 ImmChecks.push_back(std::make_tuple(0, 14, 0));
1433   break;
1434 case SME::BI__builtin_sme_svwrite_hor_za16_bf16_vg2:
1435 ImmChecks.push_back(std::make_tuple(0, 14, 0));
1436   break;
1437 case SME::BI__builtin_sme_svwrite_hor_za16_bf16_vg4:
1438 ImmChecks.push_back(std::make_tuple(0, 14, 0));
1439   break;
1440 case SME::BI__builtin_sme_svwrite_hor_za16_f16_m:
1441 ImmChecks.push_back(std::make_tuple(0, 14, 0));
1442   break;
1443 case SME::BI__builtin_sme_svwrite_hor_za16_f16_vg2:
1444 ImmChecks.push_back(std::make_tuple(0, 14, 0));
1445   break;
1446 case SME::BI__builtin_sme_svwrite_hor_za16_f16_vg4:
1447 ImmChecks.push_back(std::make_tuple(0, 14, 0));
1448   break;
1449 case SME::BI__builtin_sme_svwrite_hor_za16_s16_m:
1450 ImmChecks.push_back(std::make_tuple(0, 14, 0));
1451   break;
1452 case SME::BI__builtin_sme_svwrite_hor_za16_s16_vg2:
1453 ImmChecks.push_back(std::make_tuple(0, 14, 0));
1454   break;
1455 case SME::BI__builtin_sme_svwrite_hor_za16_s16_vg4:
1456 ImmChecks.push_back(std::make_tuple(0, 14, 0));
1457   break;
1458 case SME::BI__builtin_sme_svwrite_hor_za16_u16_m:
1459 ImmChecks.push_back(std::make_tuple(0, 14, 0));
1460   break;
1461 case SME::BI__builtin_sme_svwrite_hor_za16_u16_vg2:
1462 ImmChecks.push_back(std::make_tuple(0, 14, 0));
1463   break;
1464 case SME::BI__builtin_sme_svwrite_hor_za16_u16_vg4:
1465 ImmChecks.push_back(std::make_tuple(0, 14, 0));
1466   break;
1467 case SME::BI__builtin_sme_svwrite_hor_za32_f32_m:
1468 ImmChecks.push_back(std::make_tuple(0, 16, 0));
1469   break;
1470 case SME::BI__builtin_sme_svwrite_hor_za32_f32_vg2:
1471 ImmChecks.push_back(std::make_tuple(0, 16, 0));
1472   break;
1473 case SME::BI__builtin_sme_svwrite_hor_za32_f32_vg4:
1474 ImmChecks.push_back(std::make_tuple(0, 16, 0));
1475   break;
1476 case SME::BI__builtin_sme_svwrite_hor_za32_s32_m:
1477 ImmChecks.push_back(std::make_tuple(0, 16, 0));
1478   break;
1479 case SME::BI__builtin_sme_svwrite_hor_za32_s32_vg2:
1480 ImmChecks.push_back(std::make_tuple(0, 16, 0));
1481   break;
1482 case SME::BI__builtin_sme_svwrite_hor_za32_s32_vg4:
1483 ImmChecks.push_back(std::make_tuple(0, 16, 0));
1484   break;
1485 case SME::BI__builtin_sme_svwrite_hor_za32_u32_m:
1486 ImmChecks.push_back(std::make_tuple(0, 16, 0));
1487   break;
1488 case SME::BI__builtin_sme_svwrite_hor_za32_u32_vg2:
1489 ImmChecks.push_back(std::make_tuple(0, 16, 0));
1490   break;
1491 case SME::BI__builtin_sme_svwrite_hor_za32_u32_vg4:
1492 ImmChecks.push_back(std::make_tuple(0, 16, 0));
1493   break;
1494 case SME::BI__builtin_sme_svwrite_hor_za64_f64_m:
1495 ImmChecks.push_back(std::make_tuple(0, 6, 0));
1496   break;
1497 case SME::BI__builtin_sme_svwrite_hor_za64_f64_vg2:
1498 ImmChecks.push_back(std::make_tuple(0, 6, 0));
1499   break;
1500 case SME::BI__builtin_sme_svwrite_hor_za64_f64_vg4:
1501 ImmChecks.push_back(std::make_tuple(0, 6, 0));
1502   break;
1503 case SME::BI__builtin_sme_svwrite_hor_za64_s64_m:
1504 ImmChecks.push_back(std::make_tuple(0, 6, 0));
1505   break;
1506 case SME::BI__builtin_sme_svwrite_hor_za64_s64_vg2:
1507 ImmChecks.push_back(std::make_tuple(0, 6, 0));
1508   break;
1509 case SME::BI__builtin_sme_svwrite_hor_za64_s64_vg4:
1510 ImmChecks.push_back(std::make_tuple(0, 6, 0));
1511   break;
1512 case SME::BI__builtin_sme_svwrite_hor_za64_u64_m:
1513 ImmChecks.push_back(std::make_tuple(0, 6, 0));
1514   break;
1515 case SME::BI__builtin_sme_svwrite_hor_za64_u64_vg2:
1516 ImmChecks.push_back(std::make_tuple(0, 6, 0));
1517   break;
1518 case SME::BI__builtin_sme_svwrite_hor_za64_u64_vg4:
1519 ImmChecks.push_back(std::make_tuple(0, 6, 0));
1520   break;
1521 case SME::BI__builtin_sme_svwrite_hor_za8_s8_m:
1522 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1523   break;
1524 case SME::BI__builtin_sme_svwrite_hor_za8_s8_vg2:
1525 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1526   break;
1527 case SME::BI__builtin_sme_svwrite_hor_za8_s8_vg4:
1528 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1529   break;
1530 case SME::BI__builtin_sme_svwrite_hor_za8_u8_m:
1531 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1532   break;
1533 case SME::BI__builtin_sme_svwrite_hor_za8_u8_vg2:
1534 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1535   break;
1536 case SME::BI__builtin_sme_svwrite_hor_za8_u8_vg4:
1537 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1538   break;
1539 case SME::BI__builtin_sme_svwrite_lane_zt_bf16:
1540 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1541 ImmChecks.push_back(std::make_tuple(2, 22, 0));
1542   break;
1543 case SME::BI__builtin_sme_svwrite_lane_zt_f16:
1544 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1545 ImmChecks.push_back(std::make_tuple(2, 22, 0));
1546   break;
1547 case SME::BI__builtin_sme_svwrite_lane_zt_f32:
1548 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1549 ImmChecks.push_back(std::make_tuple(2, 22, 0));
1550   break;
1551 case SME::BI__builtin_sme_svwrite_lane_zt_f64:
1552 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1553 ImmChecks.push_back(std::make_tuple(2, 22, 0));
1554   break;
1555 case SME::BI__builtin_sme_svwrite_lane_zt_s16:
1556 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1557 ImmChecks.push_back(std::make_tuple(2, 22, 0));
1558   break;
1559 case SME::BI__builtin_sme_svwrite_lane_zt_s32:
1560 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1561 ImmChecks.push_back(std::make_tuple(2, 22, 0));
1562   break;
1563 case SME::BI__builtin_sme_svwrite_lane_zt_s64:
1564 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1565 ImmChecks.push_back(std::make_tuple(2, 22, 0));
1566   break;
1567 case SME::BI__builtin_sme_svwrite_lane_zt_s8:
1568 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1569 ImmChecks.push_back(std::make_tuple(2, 22, 0));
1570   break;
1571 case SME::BI__builtin_sme_svwrite_lane_zt_u16:
1572 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1573 ImmChecks.push_back(std::make_tuple(2, 22, 0));
1574   break;
1575 case SME::BI__builtin_sme_svwrite_lane_zt_u32:
1576 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1577 ImmChecks.push_back(std::make_tuple(2, 22, 0));
1578   break;
1579 case SME::BI__builtin_sme_svwrite_lane_zt_u64:
1580 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1581 ImmChecks.push_back(std::make_tuple(2, 22, 0));
1582   break;
1583 case SME::BI__builtin_sme_svwrite_lane_zt_u8:
1584 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1585 ImmChecks.push_back(std::make_tuple(2, 22, 0));
1586   break;
1587 case SME::BI__builtin_sme_svwrite_ver_za128_bf16_m:
1588 ImmChecks.push_back(std::make_tuple(0, 18, 0));
1589   break;
1590 case SME::BI__builtin_sme_svwrite_ver_za128_f16_m:
1591 ImmChecks.push_back(std::make_tuple(0, 18, 0));
1592   break;
1593 case SME::BI__builtin_sme_svwrite_ver_za128_f32_m:
1594 ImmChecks.push_back(std::make_tuple(0, 18, 0));
1595   break;
1596 case SME::BI__builtin_sme_svwrite_ver_za128_f64_m:
1597 ImmChecks.push_back(std::make_tuple(0, 18, 0));
1598   break;
1599 case SME::BI__builtin_sme_svwrite_ver_za128_s16_m:
1600 ImmChecks.push_back(std::make_tuple(0, 18, 0));
1601   break;
1602 case SME::BI__builtin_sme_svwrite_ver_za128_s32_m:
1603 ImmChecks.push_back(std::make_tuple(0, 18, 0));
1604   break;
1605 case SME::BI__builtin_sme_svwrite_ver_za128_s64_m:
1606 ImmChecks.push_back(std::make_tuple(0, 18, 0));
1607   break;
1608 case SME::BI__builtin_sme_svwrite_ver_za128_s8_m:
1609 ImmChecks.push_back(std::make_tuple(0, 18, 0));
1610   break;
1611 case SME::BI__builtin_sme_svwrite_ver_za128_u16_m:
1612 ImmChecks.push_back(std::make_tuple(0, 18, 0));
1613   break;
1614 case SME::BI__builtin_sme_svwrite_ver_za128_u32_m:
1615 ImmChecks.push_back(std::make_tuple(0, 18, 0));
1616   break;
1617 case SME::BI__builtin_sme_svwrite_ver_za128_u64_m:
1618 ImmChecks.push_back(std::make_tuple(0, 18, 0));
1619   break;
1620 case SME::BI__builtin_sme_svwrite_ver_za128_u8_m:
1621 ImmChecks.push_back(std::make_tuple(0, 18, 0));
1622   break;
1623 case SME::BI__builtin_sme_svwrite_ver_za16_bf16_m:
1624 ImmChecks.push_back(std::make_tuple(0, 14, 0));
1625   break;
1626 case SME::BI__builtin_sme_svwrite_ver_za16_bf16_vg2:
1627 ImmChecks.push_back(std::make_tuple(0, 14, 0));
1628   break;
1629 case SME::BI__builtin_sme_svwrite_ver_za16_bf16_vg4:
1630 ImmChecks.push_back(std::make_tuple(0, 14, 0));
1631   break;
1632 case SME::BI__builtin_sme_svwrite_ver_za16_f16_m:
1633 ImmChecks.push_back(std::make_tuple(0, 14, 0));
1634   break;
1635 case SME::BI__builtin_sme_svwrite_ver_za16_f16_vg2:
1636 ImmChecks.push_back(std::make_tuple(0, 14, 0));
1637   break;
1638 case SME::BI__builtin_sme_svwrite_ver_za16_f16_vg4:
1639 ImmChecks.push_back(std::make_tuple(0, 14, 0));
1640   break;
1641 case SME::BI__builtin_sme_svwrite_ver_za16_s16_m:
1642 ImmChecks.push_back(std::make_tuple(0, 14, 0));
1643   break;
1644 case SME::BI__builtin_sme_svwrite_ver_za16_s16_vg2:
1645 ImmChecks.push_back(std::make_tuple(0, 14, 0));
1646   break;
1647 case SME::BI__builtin_sme_svwrite_ver_za16_s16_vg4:
1648 ImmChecks.push_back(std::make_tuple(0, 14, 0));
1649   break;
1650 case SME::BI__builtin_sme_svwrite_ver_za16_u16_m:
1651 ImmChecks.push_back(std::make_tuple(0, 14, 0));
1652   break;
1653 case SME::BI__builtin_sme_svwrite_ver_za16_u16_vg2:
1654 ImmChecks.push_back(std::make_tuple(0, 14, 0));
1655   break;
1656 case SME::BI__builtin_sme_svwrite_ver_za16_u16_vg4:
1657 ImmChecks.push_back(std::make_tuple(0, 14, 0));
1658   break;
1659 case SME::BI__builtin_sme_svwrite_ver_za32_f32_m:
1660 ImmChecks.push_back(std::make_tuple(0, 16, 0));
1661   break;
1662 case SME::BI__builtin_sme_svwrite_ver_za32_f32_vg2:
1663 ImmChecks.push_back(std::make_tuple(0, 16, 0));
1664   break;
1665 case SME::BI__builtin_sme_svwrite_ver_za32_f32_vg4:
1666 ImmChecks.push_back(std::make_tuple(0, 16, 0));
1667   break;
1668 case SME::BI__builtin_sme_svwrite_ver_za32_s32_m:
1669 ImmChecks.push_back(std::make_tuple(0, 16, 0));
1670   break;
1671 case SME::BI__builtin_sme_svwrite_ver_za32_s32_vg2:
1672 ImmChecks.push_back(std::make_tuple(0, 16, 0));
1673   break;
1674 case SME::BI__builtin_sme_svwrite_ver_za32_s32_vg4:
1675 ImmChecks.push_back(std::make_tuple(0, 16, 0));
1676   break;
1677 case SME::BI__builtin_sme_svwrite_ver_za32_u32_m:
1678 ImmChecks.push_back(std::make_tuple(0, 16, 0));
1679   break;
1680 case SME::BI__builtin_sme_svwrite_ver_za32_u32_vg2:
1681 ImmChecks.push_back(std::make_tuple(0, 16, 0));
1682   break;
1683 case SME::BI__builtin_sme_svwrite_ver_za32_u32_vg4:
1684 ImmChecks.push_back(std::make_tuple(0, 16, 0));
1685   break;
1686 case SME::BI__builtin_sme_svwrite_ver_za64_f64_m:
1687 ImmChecks.push_back(std::make_tuple(0, 6, 0));
1688   break;
1689 case SME::BI__builtin_sme_svwrite_ver_za64_f64_vg2:
1690 ImmChecks.push_back(std::make_tuple(0, 6, 0));
1691   break;
1692 case SME::BI__builtin_sme_svwrite_ver_za64_f64_vg4:
1693 ImmChecks.push_back(std::make_tuple(0, 6, 0));
1694   break;
1695 case SME::BI__builtin_sme_svwrite_ver_za64_s64_m:
1696 ImmChecks.push_back(std::make_tuple(0, 6, 0));
1697   break;
1698 case SME::BI__builtin_sme_svwrite_ver_za64_s64_vg2:
1699 ImmChecks.push_back(std::make_tuple(0, 6, 0));
1700   break;
1701 case SME::BI__builtin_sme_svwrite_ver_za64_s64_vg4:
1702 ImmChecks.push_back(std::make_tuple(0, 6, 0));
1703   break;
1704 case SME::BI__builtin_sme_svwrite_ver_za64_u64_m:
1705 ImmChecks.push_back(std::make_tuple(0, 6, 0));
1706   break;
1707 case SME::BI__builtin_sme_svwrite_ver_za64_u64_vg2:
1708 ImmChecks.push_back(std::make_tuple(0, 6, 0));
1709   break;
1710 case SME::BI__builtin_sme_svwrite_ver_za64_u64_vg4:
1711 ImmChecks.push_back(std::make_tuple(0, 6, 0));
1712   break;
1713 case SME::BI__builtin_sme_svwrite_ver_za8_s8_m:
1714 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1715   break;
1716 case SME::BI__builtin_sme_svwrite_ver_za8_s8_vg2:
1717 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1718   break;
1719 case SME::BI__builtin_sme_svwrite_ver_za8_s8_vg4:
1720 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1721   break;
1722 case SME::BI__builtin_sme_svwrite_ver_za8_u8_m:
1723 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1724   break;
1725 case SME::BI__builtin_sme_svwrite_ver_za8_u8_vg2:
1726 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1727   break;
1728 case SME::BI__builtin_sme_svwrite_ver_za8_u8_vg4:
1729 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1730   break;
1731 case SME::BI__builtin_sme_svwrite_zt_bf16:
1732 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1733   break;
1734 case SME::BI__builtin_sme_svwrite_zt_f16:
1735 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1736   break;
1737 case SME::BI__builtin_sme_svwrite_zt_f32:
1738 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1739   break;
1740 case SME::BI__builtin_sme_svwrite_zt_f64:
1741 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1742   break;
1743 case SME::BI__builtin_sme_svwrite_zt_s16:
1744 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1745   break;
1746 case SME::BI__builtin_sme_svwrite_zt_s32:
1747 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1748   break;
1749 case SME::BI__builtin_sme_svwrite_zt_s64:
1750 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1751   break;
1752 case SME::BI__builtin_sme_svwrite_zt_s8:
1753 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1754   break;
1755 case SME::BI__builtin_sme_svwrite_zt_u16:
1756 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1757   break;
1758 case SME::BI__builtin_sme_svwrite_zt_u32:
1759 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1760   break;
1761 case SME::BI__builtin_sme_svwrite_zt_u64:
1762 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1763   break;
1764 case SME::BI__builtin_sme_svwrite_zt_u8:
1765 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1766   break;
1767 case SME::BI__builtin_sme_svzero_mask_za:
1768 ImmChecks.push_back(std::make_tuple(0, 19, 0));
1769   break;
1770 case SME::BI__builtin_sme_svzero_zt:
1771 ImmChecks.push_back(std::make_tuple(0, 17, 0));
1772   break;
1773 #endif
1774