Skip to content

Commit e49f849

Browse files
arsenmPravin Jagtap
authored andcommitted
AMDGPU: MC support for v_cvt_scale_[f16|f32]_bf8 of gfx950. (llvm#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 aa976ea commit e49f849

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",
@@ -1540,7 +1546,8 @@ def FeatureISAVersion9_5_Common : FeatureSet<
15401546
FeaturePrngInst,
15411547
FeatureBF16ConversionInsts,
15421548
FeatureBitOp3Insts,
1543-
FeatureFP8ConversionScaleInsts
1549+
FeatureFP8ConversionScaleInsts,
1550+
FeatureBF8ConversionScaleInsts
15441551
])>;
15451552

15461553
def FeatureISAVersion9_4_0 : FeatureSet<
@@ -2420,6 +2427,9 @@ def HasPrngInst : Predicate<"Subtarget->hasPrngInst()">,
24202427
def HasFP8ConversionScaleInsts : Predicate<"Subtarget->hasFP8ConversionScaleInsts()">,
24212428
AssemblerPredicate<(all_of FeatureFP8ConversionScaleInsts)>;
24222429

2430+
def HasBF8ConversionScaleInsts : Predicate<"Subtarget->hasBF8ConversionScaleInsts()">,
2431+
AssemblerPredicate<(all_of FeatureBF8ConversionScaleInsts)>;
2432+
24232433
def HasGDS : Predicate<"Subtarget->hasGDS()">;
24242434

24252435
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
@@ -895,6 +895,11 @@ let SubtargetPredicate = HasFP8ConversionScaleInsts, mayRaiseFPException = 0 in
895895
defm V_CVT_SCALEF32_F32_FP8 : VOP3Inst<"v_cvt_scalef32_f32_fp8", VOP3_CVT_SCALE_F1632_FP8BF8_Profile<f32>>;
896896
}
897897

898+
let SubtargetPredicate = HasBF8ConversionScaleInsts, mayRaiseFPException = 0 in {
899+
defm V_CVT_SCALEF32_F16_BF8 : VOP3Inst<"v_cvt_scalef32_f16_bf8", VOP3_CVT_SCALE_F1632_FP8BF8_Profile<f16>>;
900+
defm V_CVT_SCALEF32_F32_BF8 : VOP3Inst<"v_cvt_scalef32_f32_bf8", VOP3_CVT_SCALE_F1632_FP8BF8_Profile<f32>>;
901+
}
902+
898903
let SubtargetPredicate = isGFX10Plus in {
899904
let isCommutable = 1, isReMaterializable = 1 in {
900905
defm V_XOR3_B32 : VOP3Inst <"v_xor3_b32", VOP3_Profile<VOP_I32_I32_I32_I32>>;
@@ -1798,3 +1803,7 @@ let OtherPredicates = [HasFP8ConversionScaleInsts] in {
17981803
defm V_CVT_SCALEF32_F16_FP8 : VOP3OpSel_Real_gfx9 <0x24a>;
17991804
defm V_CVT_SCALEF32_F32_FP8 : VOP3OpSel_Real_gfx9 <0x23b>;
18001805
}
1806+
let OtherPredicates = [HasBF8ConversionScaleInsts] in {
1807+
defm V_CVT_SCALEF32_F16_BF8 : VOP3OpSel_Real_gfx9 <0x24b>;
1808+
defm V_CVT_SCALEF32_F32_BF8 : VOP3OpSel_Real_gfx9 <0x23c>;
1809+
}

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)