352 lines · plain
1// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 %s 2>&1 | FileCheck --check-prefix=GFX12 --implicit-check-not=error: %s2 3v_dot4_f32_fp8_bf8 v0, v1, v2, v3 clamp4// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction5 6v_dot4_f32_fp8_bf8 v0, v1, v2, v3 op_sel:[1,0,0]7// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand8 9v_dot4_f32_fp8_bf8 v0, v1, v2, v3 op_sel:[0,1,0]10// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand11 12v_dot4_f32_fp8_bf8 v0, v1, v2, v3 op_sel:[0,0,1]13// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand14 15v_dot4_f32_fp8_bf8 v0, v1, v2, v3 op_sel_hi:[0,1,1]16// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand17 18v_dot4_f32_fp8_bf8 v0, v1, v2, v3 op_sel_hi:[1,0,1]19// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand20 21v_dot4_f32_fp8_bf8 v0, v1, v2, v3 op_sel_hi:[1,1,0]22// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand23 24v_dot4_f32_fp8_bf8 v0, v1, v2, v3 neg_lo:[1,0,0]25// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: invalid neg_lo operand26 27v_dot4_f32_fp8_bf8 v0, v1, v2, v3 neg_lo:[0,1,0]28// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: invalid neg_lo operand29 30v_dot4_f32_fp8_bf8 v0, v1, v2, v3 neg_hi:[1,0,0]31// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: invalid neg_hi operand32 33v_dot4_f32_fp8_bf8 v0, v1, v2, v3 neg_hi:[0,1,0]34// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: invalid neg_hi operand35 36v_dot4_f32_bf8_fp8 v0, v1, v2, v3 clamp37// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction38 39v_dot4_f32_bf8_fp8 v0, v1, v2, v3 op_sel:[1,0,0]40// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand41 42v_dot4_f32_bf8_fp8 v0, v1, v2, v3 op_sel:[0,1,0]43// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand44 45v_dot4_f32_bf8_fp8 v0, v1, v2, v3 op_sel:[0,0,1]46// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand47 48v_dot4_f32_bf8_fp8 v0, v1, v2, v3 op_sel_hi:[0,1,1]49// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand50 51v_dot4_f32_bf8_fp8 v0, v1, v2, v3 op_sel_hi:[1,0,1]52// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand53 54v_dot4_f32_bf8_fp8 v0, v1, v2, v3 op_sel_hi:[1,1,0]55// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand56 57v_dot4_f32_bf8_fp8 v0, v1, v2, v3 neg_lo:[1,0,0]58// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: invalid neg_lo operand59 60v_dot4_f32_bf8_fp8 v0, v1, v2, v3 neg_lo:[0,1,0]61// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: invalid neg_lo operand62 63v_dot4_f32_bf8_fp8 v0, v1, v2, v3 neg_hi:[1,0,0]64// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: invalid neg_hi operand65 66v_dot4_f32_bf8_fp8 v0, v1, v2, v3 neg_hi:[0,1,0]67// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: invalid neg_hi operand68 69v_dot4_f32_fp8_fp8 v0, v1, v2, v3 clamp70// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction71 72v_dot4_f32_fp8_fp8 v0, v1, v2, v3 op_sel:[1,0,0]73// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand74 75v_dot4_f32_fp8_fp8 v0, v1, v2, v3 op_sel:[0,1,0]76// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand77 78v_dot4_f32_fp8_fp8 v0, v1, v2, v3 op_sel:[0,0,1]79// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand80 81v_dot4_f32_fp8_fp8 v0, v1, v2, v3 op_sel_hi:[0,1,1]82// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand83 84v_dot4_f32_fp8_fp8 v0, v1, v2, v3 op_sel_hi:[1,0,1]85// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand86 87v_dot4_f32_fp8_fp8 v0, v1, v2, v3 op_sel_hi:[1,1,0]88// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand89 90v_dot4_f32_fp8_fp8 v0, v1, v2, v3 neg_lo:[1,0,0]91// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: invalid neg_lo operand92 93v_dot4_f32_fp8_fp8 v0, v1, v2, v3 neg_lo:[0,1,0]94// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: invalid neg_lo operand95 96v_dot4_f32_fp8_fp8 v0, v1, v2, v3 neg_hi:[1,0,0]97// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: invalid neg_hi operand98 99v_dot4_f32_fp8_fp8 v0, v1, v2, v3 neg_hi:[0,1,0]100// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: invalid neg_hi operand101 102v_dot4_f32_bf8_bf8 v0, v1, v2, v3 clamp103// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction104 105v_dot4_f32_bf8_bf8 v0, v1, v2, v3 op_sel:[1,0,0]106// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand107 108v_dot4_f32_bf8_bf8 v0, v1, v2, v3 op_sel:[0,1,0]109// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand110 111v_dot4_f32_bf8_bf8 v0, v1, v2, v3 op_sel:[0,0,1]112// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand113 114v_dot4_f32_bf8_bf8 v0, v1, v2, v3 op_sel_hi:[0,1,1]115// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand116 117v_dot4_f32_bf8_bf8 v0, v1, v2, v3 op_sel_hi:[1,0,1]118// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand119 120v_dot4_f32_bf8_bf8 v0, v1, v2, v3 op_sel_hi:[1,1,0]121// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand122 123v_dot4_f32_bf8_bf8 v0, v1, v2, v3 neg_lo:[1,0,0]124// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: invalid neg_lo operand125 126v_dot4_f32_bf8_bf8 v0, v1, v2, v3 neg_lo:[0,1,0]127// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: invalid neg_lo operand128 129v_dot4_f32_bf8_bf8 v0, v1, v2, v3 neg_hi:[1,0,0]130// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: invalid neg_hi operand131 132v_dot4_f32_bf8_bf8 v0, v1, v2, v3 neg_hi:[0,1,0]133// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: invalid neg_hi operand134 135// op_sel not allowed in dot opcodes with 4- or 8-bit packed data136 137v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[0,0]138// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.139 140v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[0,1]141// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.142 143v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[1,0]144// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.145 146v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[1,1]147// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.148 149v_dot4_i32_iu8 v0, v1, v2, v3 op_sel_hi:[0,0]150// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.151 152v_dot4_i32_iu8 v0, v1, v2, v3 op_sel_hi:[0,1]153// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.154 155v_dot4_i32_iu8 v0, v1, v2, v3 op_sel_hi:[1,0]156// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.157 158v_dot4_i32_iu8 v0, v1, v2, v3 op_sel_hi:[1,1]159// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.160 161v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,0]162// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.163 164v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,1]165// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.166 167v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,0]168// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.169 170v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,1]171// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.172 173v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,0]174// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.175 176v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,1]177// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.178 179v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,0]180// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.181 182v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,1]183// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.184 185v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,0]186// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.187 188v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,1]189// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.190 191v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,0]192// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.193 194v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,1]195// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.196 197v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,0]198// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.199 200v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,1]201// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.202 203v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,0]204// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.205 206v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,1]207// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.208 209v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,0]210// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.211 212v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,1]213// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.214 215v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,0]216// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.217 218v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,1]219// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.220 221v_dot4_u32_u8 v0, v1, v2, v3 op_sel_hi:[0,0]222// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.223 224v_dot4_u32_u8 v0, v1, v2, v3 op_sel_hi:[0,1]225// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.226 227v_dot4_u32_u8 v0, v1, v2, v3 op_sel_hi:[1,0]228// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.229 230v_dot4_u32_u8 v0, v1, v2, v3 op_sel_hi:[1,1]231// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.232 233v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,0]234// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.235 236v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,1]237// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.238 239v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,0]240// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.241 242v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,1]243// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.244 245v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,0]246// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.247 248v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,1]249// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.250 251v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,0]252// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.253 254v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,1]255// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.256 257v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,0]258// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.259 260v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,1]261// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.262 263v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,0]264// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.265 266v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,1]267// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.268 269v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,0]270// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.271 272v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,1]273// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.274 275v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,0]276// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.277 278v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,1]279// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.280 281v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,0]282// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.283 284v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,1]285// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.286 287v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,0]288// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.289 290v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,1]291// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.292 293v_dot8_u32_u4 v0, v1, v2, v3 op_sel_hi:[0,0]294// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.295 296v_dot8_u32_u4 v0, v1, v2, v3 op_sel_hi:[0,1]297// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.298 299v_dot8_u32_u4 v0, v1, v2, v3 op_sel_hi:[1,0]300// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.301 302v_dot8_u32_u4 v0, v1, v2, v3 op_sel_hi:[1,1]303// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.304 305v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,0]306// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.307 308v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,1]309// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.310 311v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,0]312// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.313 314v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,1]315// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.316 317v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,0]318// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.319 320v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,1]321// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.322 323v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,0]324// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.325 326v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,1]327// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.328 329v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,0]330// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.331 332v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,1]333// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.334 335v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,0]336// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.337 338v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,1]339// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.340 341v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,0]342// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.343 344v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,1]345// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.346 347v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,0]348// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.349 350v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,1]351// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.352