Skip to content

Commit 91af15b

Browse files
arsenmpravinjagtap
andauthored
AMDGPU: MC support for v_cvt_scale_[f16|f32]_bf8 of gfx950. (#117381)
OPSEL ASM Syntax: opsel:[x,y,z] where, opsel[x] = Inst{11} = src0_modifier{2} opsel[y] = Inst{12} = src1_modifier{2} opsel[z] = Inst{14} = src0_modifier{3} Note: Conventional Inst{13} i.e. OPSEL[2] is ignored in asm syntax. Co-authored-by: Pravin Jagtap <[email protected]>
1 parent 7ad1084 commit 91af15b

File tree

5 files changed

+360
-2
lines changed

5 files changed

+360
-2
lines changed

llvm/lib/Target/AMDGPU/AMDGPU.td

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -390,11 +390,17 @@ def FeatureFP8ConversionScaleInsts : SubtargetFeature<"fp8-cvt-scale-insts",
390390
"Has fp8 conversion scale instructions"
391391
>;
392392

393+
def FeatureBF8ConversionScaleInsts : SubtargetFeature<"bf8-cvt-scale-insts",
394+
"HasBF8ConversionScaleInsts",
395+
"true",
396+
"Has bf8 conversion scale instructions"
397+
>;
398+
393399
def FeatureGFX950Insts : SubtargetFeature<"gfx950-insts",
394400
"GFX950Insts",
395401
"true",
396402
"Additional instructions for GFX950+",
397-
[FeaturePermlane16Swap, FeaturePermlane32Swap, FeatureFP8ConversionScaleInsts]
403+
[FeaturePermlane16Swap, FeaturePermlane32Swap, FeatureFP8ConversionScaleInsts, FeatureBF8ConversionScaleInsts]
398404
>;
399405

400406
def FeatureGFX10Insts : SubtargetFeature<"gfx10-insts",
@@ -1538,7 +1544,8 @@ def FeatureISAVersion9_5_Common : FeatureSet<
15381544
FeaturePrngInst,
15391545
FeatureBF16ConversionInsts,
15401546
FeatureBitOp3Insts,
1541-
FeatureFP8ConversionScaleInsts
1547+
FeatureFP8ConversionScaleInsts,
1548+
FeatureBF8ConversionScaleInsts
15421549
])>;
15431550

15441551
def FeatureISAVersion9_4_0 : FeatureSet<
@@ -2415,6 +2422,9 @@ def HasPrngInst : Predicate<"Subtarget->hasPrngInst()">,
24152422
def HasFP8ConversionScaleInsts : Predicate<"Subtarget->hasFP8ConversionScaleInsts()">,
24162423
AssemblerPredicate<(all_of FeatureFP8ConversionScaleInsts)>;
24172424

2425+
def HasBF8ConversionScaleInsts : Predicate<"Subtarget->hasBF8ConversionScaleInsts()">,
2426+
AssemblerPredicate<(all_of FeatureBF8ConversionScaleInsts)>;
2427+
24182428
def HasGDS : Predicate<"Subtarget->hasGDS()">;
24192429

24202430
def HasGWS : Predicate<"Subtarget->hasGWS()">;

llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ class AMDGPUSubtarget {
5151
bool Has16BitInsts = false;
5252
bool HasTrue16BitInsts = false;
5353
bool HasFP8ConversionScaleInsts = false;
54+
bool HasBF8ConversionScaleInsts = false;
5455
bool EnableRealTrue16Insts = false;
5556
bool HasBF16ConversionInsts = false;
5657
bool HasMadMixInsts = false;
@@ -178,6 +179,8 @@ class AMDGPUSubtarget {
178179

179180
bool hasFP8ConversionScaleInsts() const { return HasFP8ConversionScaleInsts; }
180181

182+
bool hasBF8ConversionScaleInsts() const { return HasBF8ConversionScaleInsts; }
183+
181184
bool hasMadMacF32Insts() const {
182185
return HasMadMacF32Insts || !isGCN();
183186
}

llvm/lib/Target/AMDGPU/VOP3Instructions.td

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -892,6 +892,11 @@ let SubtargetPredicate = HasFP8ConversionScaleInsts, mayRaiseFPException = 0 in
892892
defm V_CVT_SCALEF32_F32_FP8 : VOP3Inst<"v_cvt_scalef32_f32_fp8", VOP3_CVT_SCALE_F1632_FP8BF8_Profile<f32>>;
893893
}
894894

895+
let SubtargetPredicate = HasBF8ConversionScaleInsts, mayRaiseFPException = 0 in {
896+
defm V_CVT_SCALEF32_F16_BF8 : VOP3Inst<"v_cvt_scalef32_f16_bf8", VOP3_CVT_SCALE_F1632_FP8BF8_Profile<f16>>;
897+
defm V_CVT_SCALEF32_F32_BF8 : VOP3Inst<"v_cvt_scalef32_f32_bf8", VOP3_CVT_SCALE_F1632_FP8BF8_Profile<f32>>;
898+
}
899+
895900
let SubtargetPredicate = isGFX10Plus in {
896901
let isCommutable = 1, isReMaterializable = 1 in {
897902
defm V_XOR3_B32 : VOP3Inst <"v_xor3_b32", VOP3_Profile<VOP_I32_I32_I32_I32>>;
@@ -1818,3 +1823,7 @@ let OtherPredicates = [HasFP8ConversionScaleInsts] in {
18181823
defm V_CVT_SCALEF32_F16_FP8 : VOP3OpSel_Real_gfx9 <0x24a>;
18191824
defm V_CVT_SCALEF32_F32_FP8 : VOP3OpSel_Real_gfx9 <0x23b>;
18201825
}
1826+
let OtherPredicates = [HasBF8ConversionScaleInsts] in {
1827+
defm V_CVT_SCALEF32_F16_BF8 : VOP3OpSel_Real_gfx9 <0x24b>;
1828+
defm V_CVT_SCALEF32_F32_BF8 : VOP3OpSel_Real_gfx9 <0x23c>;
1829+
}

llvm/test/MC/AMDGPU/gfx950_asm_features.s

Lines changed: 192 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -309,3 +309,195 @@ v_cvt_scalef32_f32_fp8 v1, 33, v3 op_sel:[0,1,1]
309309
// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error:
310310
// GFX950: v_cvt_scalef32_f32_fp8 v1, 44, v3 op_sel:[1,1,1] ; encoding: [0x01,0x58,0x3b,0xd2,0xac,0x06,0x02,0x00]
311311
v_cvt_scalef32_f32_fp8 v1, 44, v3 op_sel:[1,1,1]
312+
313+
// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error:
314+
// GFX950: v_cvt_scalef32_f16_bf8 v1, v2, v3 ; encoding: [0x01,0x00,0x4b,0xd2,0x02,0x07,0x02,0x00]
315+
v_cvt_scalef32_f16_bf8 v1, v2, v3
316+
317+
// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error:
318+
// GFX950: v_cvt_scalef32_f16_bf8 v1, v2, v3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x4b,0xd2,0x02,0x07,0x02,0x00]
319+
v_cvt_scalef32_f16_bf8 v1, v2, v3 op_sel:[1,0,0]
320+
321+
// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error:
322+
// GFX950: v_cvt_scalef32_f16_bf8 v1, v2, v3 op_sel:[0,1,0] ; encoding: [0x01,0x10,0x4b,0xd2,0x02,0x07,0x02,0x00]
323+
v_cvt_scalef32_f16_bf8 v1, v2, v3 op_sel:[0,1,0]
324+
325+
// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error:
326+
// GFX950: v_cvt_scalef32_f16_bf8 v1, v2, v3 op_sel:[1,1,0] ; encoding: [0x01,0x18,0x4b,0xd2,0x02,0x07,0x02,0x00]
327+
v_cvt_scalef32_f16_bf8 v1, v2, v3 op_sel:[1,1,0]
328+
329+
// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error:
330+
// GFX950: v_cvt_scalef32_f16_bf8 v1, v2, v3 op_sel:[0,0,1] ; encoding: [0x01,0x40,0x4b,0xd2,0x02,0x07,0x02,0x00]
331+
v_cvt_scalef32_f16_bf8 v1, v2, v3 op_sel:[0,0,1]
332+
333+
// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error:
334+
// GFX950: v_cvt_scalef32_f16_bf8 v1, v2, v3 op_sel:[1,0,1] ; encoding: [0x01,0x48,0x4b,0xd2,0x02,0x07,0x02,0x00]
335+
v_cvt_scalef32_f16_bf8 v1, v2, v3 op_sel:[1,0,1]
336+
337+
// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error:
338+
// GFX950: v_cvt_scalef32_f16_bf8 v1, v2, v3 op_sel:[0,1,1] ; encoding: [0x01,0x50,0x4b,0xd2,0x02,0x07,0x02,0x00]
339+
v_cvt_scalef32_f16_bf8 v1, v2, v3 op_sel:[0,1,1]
340+
341+
// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error:
342+
// GFX950: v_cvt_scalef32_f16_bf8 v1, v2, v3 op_sel:[1,1,1] ; encoding: [0x01,0x58,0x4b,0xd2,0x02,0x07,0x02,0x00]
343+
v_cvt_scalef32_f16_bf8 v1, v2, v3 op_sel:[1,1,1]
344+
345+
// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error:
346+
// GFX950: v_cvt_scalef32_f16_bf8 v1, s1, v3 ; encoding: [0x01,0x00,0x4b,0xd2,0x01,0x06,0x02,0x00]
347+
v_cvt_scalef32_f16_bf8 v1, s1, v3
348+
349+
// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error:
350+
// GFX950: v_cvt_scalef32_f16_bf8 v1, s2, v3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x4b,0xd2,0x02,0x06,0x02,0x00]
351+
v_cvt_scalef32_f16_bf8 v1, s2, v3 op_sel:[1,0,0]
352+
353+
// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error:
354+
// GFX950: v_cvt_scalef32_f16_bf8 v1, s3, v3 op_sel:[0,1,0] ; encoding: [0x01,0x10,0x4b,0xd2,0x03,0x06,0x02,0x00]
355+
v_cvt_scalef32_f16_bf8 v1, s3, v3 op_sel:[0,1,0]
356+
357+
// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error:
358+
// GFX950: v_cvt_scalef32_f16_bf8 v1, s4, v3 op_sel:[1,1,0] ; encoding: [0x01,0x18,0x4b,0xd2,0x04,0x06,0x02,0x00]
359+
v_cvt_scalef32_f16_bf8 v1, s4, v3 op_sel:[1,1,0]
360+
361+
// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error:
362+
// GFX950: v_cvt_scalef32_f16_bf8 v1, s1, v3 op_sel:[0,0,1] ; encoding: [0x01,0x40,0x4b,0xd2,0x01,0x06,0x02,0x00]
363+
v_cvt_scalef32_f16_bf8 v1, s1, v3 op_sel:[0,0,1]
364+
365+
// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error:
366+
// GFX950: v_cvt_scalef32_f16_bf8 v1, s2, v3 op_sel:[1,0,1] ; encoding: [0x01,0x48,0x4b,0xd2,0x02,0x06,0x02,0x00]
367+
v_cvt_scalef32_f16_bf8 v1, s2, v3 op_sel:[1,0,1]
368+
369+
// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error:
370+
// GFX950: v_cvt_scalef32_f16_bf8 v1, s3, v3 op_sel:[0,1,1] ; encoding: [0x01,0x50,0x4b,0xd2,0x03,0x06,0x02,0x00]
371+
v_cvt_scalef32_f16_bf8 v1, s3, v3 op_sel:[0,1,1]
372+
373+
// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error:
374+
// GFX950: v_cvt_scalef32_f16_bf8 v1, s4, v3 op_sel:[1,1,1] ; encoding: [0x01,0x58,0x4b,0xd2,0x04,0x06,0x02,0x00]
375+
v_cvt_scalef32_f16_bf8 v1, s4, v3 op_sel:[1,1,1]
376+
377+
// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error:
378+
// GFX950: v_cvt_scalef32_f16_bf8 v1, 11, v3 ; encoding: [0x01,0x00,0x4b,0xd2,0x8b,0x06,0x02,0x00]
379+
v_cvt_scalef32_f16_bf8 v1, 11, v3
380+
381+
// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error:
382+
// GFX950: v_cvt_scalef32_f16_bf8 v1, 22, v3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x4b,0xd2,0x96,0x06,0x02,0x00]
383+
v_cvt_scalef32_f16_bf8 v1, 22, v3 op_sel:[1,0,0]
384+
385+
// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error:
386+
// GFX950: v_cvt_scalef32_f16_bf8 v1, 33, v3 op_sel:[0,1,0] ; encoding: [0x01,0x10,0x4b,0xd2,0xa1,0x06,0x02,0x00]
387+
v_cvt_scalef32_f16_bf8 v1, 33, v3 op_sel:[0,1,0]
388+
389+
// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error:
390+
// GFX950: v_cvt_scalef32_f16_bf8 v1, 44, v3 op_sel:[1,1,0] ; encoding: [0x01,0x18,0x4b,0xd2,0xac,0x06,0x02,0x00]
391+
v_cvt_scalef32_f16_bf8 v1, 44, v3 op_sel:[1,1,0]
392+
393+
// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error:
394+
// GFX950: v_cvt_scalef32_f16_bf8 v1, 11, v3 op_sel:[0,1,1] ; encoding: [0x01,0x50,0x4b,0xd2,0x8b,0x06,0x02,0x00]
395+
v_cvt_scalef32_f16_bf8 v1, 11, v3 op_sel:[0,1,1]
396+
397+
// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error:
398+
// GFX950: v_cvt_scalef32_f16_bf8 v1, 22, v3 op_sel:[1,0,1] ; encoding: [0x01,0x48,0x4b,0xd2,0x96,0x06,0x02,0x00]
399+
v_cvt_scalef32_f16_bf8 v1, 22, v3 op_sel:[1,0,1]
400+
401+
// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error:
402+
// GFX950: v_cvt_scalef32_f16_bf8 v1, 33, v3 op_sel:[0,1,1] ; encoding: [0x01,0x50,0x4b,0xd2,0xa1,0x06,0x02,0x00]
403+
v_cvt_scalef32_f16_bf8 v1, 33, v3 op_sel:[0,1,1]
404+
405+
// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error:
406+
// GFX950: v_cvt_scalef32_f16_bf8 v1, 44, v3 op_sel:[1,1,1] ; encoding: [0x01,0x58,0x4b,0xd2,0xac,0x06,0x02,0x00]
407+
v_cvt_scalef32_f16_bf8 v1, 44, v3 op_sel:[1,1,1]
408+
409+
// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error:
410+
// GFX950: v_cvt_scalef32_f32_bf8 v1, v2, v3 ; encoding: [0x01,0x00,0x3c,0xd2,0x02,0x07,0x02,0x00]
411+
v_cvt_scalef32_f32_bf8 v1, v2, v3
412+
413+
// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error:
414+
// GFX950: v_cvt_scalef32_f32_bf8 v1, v2, v3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x3c,0xd2,0x02,0x07,0x02,0x00]
415+
v_cvt_scalef32_f32_bf8 v1, v2, v3 op_sel:[1,0,0]
416+
417+
// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error:
418+
// GFX950: v_cvt_scalef32_f32_bf8 v1, v2, v3 op_sel:[0,1,0] ; encoding: [0x01,0x10,0x3c,0xd2,0x02,0x07,0x02,0x00]
419+
v_cvt_scalef32_f32_bf8 v1, v2, v3 op_sel:[0,1,0]
420+
421+
// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error:
422+
// GFX950: v_cvt_scalef32_f32_bf8 v1, v2, v3 op_sel:[1,1,0] ; encoding: [0x01,0x18,0x3c,0xd2,0x02,0x07,0x02,0x00]
423+
v_cvt_scalef32_f32_bf8 v1, v2, v3 op_sel:[1,1,0]
424+
425+
// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error:
426+
// GFX950: v_cvt_scalef32_f32_bf8 v1, v2, v3 op_sel:[0,0,1] ; encoding: [0x01,0x40,0x3c,0xd2,0x02,0x07,0x02,0x00]
427+
v_cvt_scalef32_f32_bf8 v1, v2, v3 op_sel:[0,0,1]
428+
429+
// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error:
430+
// GFX950: v_cvt_scalef32_f32_bf8 v1, v2, v3 op_sel:[1,0,1] ; encoding: [0x01,0x48,0x3c,0xd2,0x02,0x07,0x02,0x00]
431+
v_cvt_scalef32_f32_bf8 v1, v2, v3 op_sel:[1,0,1]
432+
433+
// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error:
434+
// GFX950: v_cvt_scalef32_f32_bf8 v1, v2, v3 op_sel:[0,1,1] ; encoding: [0x01,0x50,0x3c,0xd2,0x02,0x07,0x02,0x00]
435+
v_cvt_scalef32_f32_bf8 v1, v2, v3 op_sel:[0,1,1]
436+
437+
// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error:
438+
// GFX950: v_cvt_scalef32_f32_bf8 v1, v2, v3 op_sel:[1,1,1] ; encoding: [0x01,0x58,0x3c,0xd2,0x02,0x07,0x02,0x00]
439+
v_cvt_scalef32_f32_bf8 v1, v2, v3 op_sel:[1,1,1]
440+
441+
// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error:
442+
// GFX950: v_cvt_scalef32_f32_bf8 v1, s1, v3 ; encoding: [0x01,0x00,0x3c,0xd2,0x01,0x06,0x02,0x00]
443+
v_cvt_scalef32_f32_bf8 v1, s1, v3
444+
445+
// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error:
446+
// GFX950: v_cvt_scalef32_f32_bf8 v1, s2, v3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x3c,0xd2,0x02,0x06,0x02,0x00]
447+
v_cvt_scalef32_f32_bf8 v1, s2, v3 op_sel:[1,0,0]
448+
449+
// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error:
450+
// GFX950: v_cvt_scalef32_f32_bf8 v1, s3, v3 op_sel:[0,1,0] ; encoding: [0x01,0x10,0x3c,0xd2,0x03,0x06,0x02,0x00]
451+
v_cvt_scalef32_f32_bf8 v1, s3, v3 op_sel:[0,1,0]
452+
453+
// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error:
454+
// GFX950: v_cvt_scalef32_f32_bf8 v1, s4, v3 op_sel:[1,1,0] ; encoding: [0x01,0x18,0x3c,0xd2,0x04,0x06,0x02,0x00]
455+
v_cvt_scalef32_f32_bf8 v1, s4, v3 op_sel:[1,1,0]
456+
457+
// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error:
458+
// GFX950: v_cvt_scalef32_f32_bf8 v1, s1, v3 op_sel:[0,0,1] ; encoding: [0x01,0x40,0x3c,0xd2,0x01,0x06,0x02,0x00]
459+
v_cvt_scalef32_f32_bf8 v1, s1, v3 op_sel:[0,0,1]
460+
461+
// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error:
462+
// GFX950: v_cvt_scalef32_f32_bf8 v1, s2, v3 op_sel:[1,0,1] ; encoding: [0x01,0x48,0x3c,0xd2,0x02,0x06,0x02,0x00]
463+
v_cvt_scalef32_f32_bf8 v1, s2, v3 op_sel:[1,0,1]
464+
465+
// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error:
466+
// GFX950: v_cvt_scalef32_f32_bf8 v1, s3, v3 op_sel:[0,1,1] ; encoding: [0x01,0x50,0x3c,0xd2,0x03,0x06,0x02,0x00]
467+
v_cvt_scalef32_f32_bf8 v1, s3, v3 op_sel:[0,1,1]
468+
469+
// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error:
470+
// GFX950: v_cvt_scalef32_f32_bf8 v1, s4, v3 op_sel:[1,1,1] ; encoding: [0x01,0x58,0x3c,0xd2,0x04,0x06,0x02,0x00]
471+
v_cvt_scalef32_f32_bf8 v1, s4, v3 op_sel:[1,1,1]
472+
473+
// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error:
474+
// GFX950: v_cvt_scalef32_f32_bf8 v1, 11, v3 ; encoding: [0x01,0x00,0x3c,0xd2,0x8b,0x06,0x02,0x00]
475+
v_cvt_scalef32_f32_bf8 v1, 11, v3
476+
477+
// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error:
478+
// GFX950: v_cvt_scalef32_f32_bf8 v1, 22, v3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x3c,0xd2,0x96,0x06,0x02,0x00]
479+
v_cvt_scalef32_f32_bf8 v1, 22, v3 op_sel:[1,0,0]
480+
481+
// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error:
482+
// GFX950: v_cvt_scalef32_f32_bf8 v1, 33, v3 op_sel:[0,1,0] ; encoding: [0x01,0x10,0x3c,0xd2,0xa1,0x06,0x02,0x00]
483+
v_cvt_scalef32_f32_bf8 v1, 33, v3 op_sel:[0,1,0]
484+
485+
// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error:
486+
// GFX950: v_cvt_scalef32_f32_bf8 v1, 44, v3 op_sel:[1,1,0] ; encoding: [0x01,0x18,0x3c,0xd2,0xac,0x06,0x02,0x00]
487+
v_cvt_scalef32_f32_bf8 v1, 44, v3 op_sel:[1,1,0]
488+
489+
// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error:
490+
// GFX950: v_cvt_scalef32_f32_bf8 v1, 11, v3 op_sel:[0,0,1] ; encoding: [0x01,0x40,0x3c,0xd2,0x8b,0x06,0x02,0x00]
491+
v_cvt_scalef32_f32_bf8 v1, 11, v3 op_sel:[0,0,1]
492+
493+
// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error:
494+
// GFX950: v_cvt_scalef32_f32_bf8 v1, 22, v3 op_sel:[1,0,1] ; encoding: [0x01,0x48,0x3c,0xd2,0x96,0x06,0x02,0x00]
495+
v_cvt_scalef32_f32_bf8 v1, 22, v3 op_sel:[1,0,1]
496+
497+
// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error:
498+
// GFX950: v_cvt_scalef32_f32_bf8 v1, 33, v3 op_sel:[0,1,1] ; encoding: [0x01,0x50,0x3c,0xd2,0xa1,0x06,0x02,0x00]
499+
v_cvt_scalef32_f32_bf8 v1, 33, v3 op_sel:[0,1,1]
500+
501+
// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error:
502+
// GFX950: v_cvt_scalef32_f32_bf8 v1, 44, v3 op_sel:[1,1,1] ; encoding: [0x01,0x58,0x3c,0xd2,0xac,0x06,0x02,0x00]
503+
v_cvt_scalef32_f32_bf8 v1, 44, v3 op_sel:[1,1,1]

0 commit comments

Comments
 (0)