@@ -237,6 +237,7 @@ def F64RT : RegTyInfo<f64, Float64Regs, f64imm, fpimm>;
237
237
def F16RT : RegTyInfo<f16, Int16Regs, f16imm, fpimm, supports_imm = 0>;
238
238
def BF16RT : RegTyInfo<bf16, Int16Regs, bf16imm, fpimm, supports_imm = 0>;
239
239
240
+ def F32X2RT : RegTyInfo<v2f32, Int64Regs, ?, ?, supports_imm = 0>;
240
241
def F16X2RT : RegTyInfo<v2f16, Int32Regs, ?, ?, supports_imm = 0>;
241
242
def BF16X2RT : RegTyInfo<v2bf16, Int32Regs, ?, ?, supports_imm = 0>;
242
243
@@ -415,7 +416,18 @@ multiclass F3<string op_str, SDPatternOperator op_pat> {
415
416
(ins Float32Regs:$a, f32imm:$b),
416
417
op_str # ".f32 \t$dst, $a, $b;",
417
418
[(set f32:$dst, (op_pat f32:$a, fpimm:$b))]>;
418
-
419
+ def f32x2rr_ftz :
420
+ NVPTXInst<(outs Int64Regs:$dst),
421
+ (ins Int64Regs:$a, Int64Regs:$b),
422
+ op_str # ".ftz.f32x2 \t$dst, $a, $b;",
423
+ [(set v2f32:$dst, (op_pat v2f32:$a, v2f32:$b))]>,
424
+ Requires<[doF32FTZ, hasF32x2Instructions]>;
425
+ def f32x2rr :
426
+ NVPTXInst<(outs Int64Regs:$dst),
427
+ (ins Int64Regs:$a, Int64Regs:$b),
428
+ op_str # ".f32x2 \t$dst, $a, $b;",
429
+ [(set v2f32:$dst, (op_pat v2f32:$a, v2f32:$b))]>,
430
+ Requires<[hasF32x2Instructions]>;
419
431
def f16rr_ftz :
420
432
NVPTXInst<(outs Int16Regs:$dst),
421
433
(ins Int16Regs:$a, Int16Regs:$b),
@@ -447,7 +459,6 @@ multiclass F3<string op_str, SDPatternOperator op_pat> {
447
459
op_str # ".bf16 \t$dst, $a, $b;",
448
460
[(set bf16:$dst, (op_pat bf16:$a, bf16:$b))]>,
449
461
Requires<[hasBF16Math]>;
450
-
451
462
def bf16x2rr :
452
463
NVPTXInst<(outs Int32Regs:$dst),
453
464
(ins Int32Regs:$a, Int32Regs:$b),
@@ -1370,6 +1381,8 @@ defm BFMA16 : FMA<"fma.rn.bf16", BF16RT, [hasBF16Math]>;
1370
1381
defm BFMA16x2 : FMA<"fma.rn.bf16x2", BF16X2RT, [hasBF16Math]>;
1371
1382
defm FMA32_ftz : FMA<"fma.rn.ftz.f32", F32RT, [doF32FTZ]>;
1372
1383
defm FMA32 : FMA<"fma.rn.f32", F32RT>;
1384
+ defm FMA32x2_ftz : FMA<"fma.rn.ftz.f32x2", F32X2RT, [doF32FTZ]>;
1385
+ defm FMA32x2 : FMA<"fma.rn.f32x2", F32X2RT>;
1373
1386
defm FMA64 : FMA<"fma.rn.f64", F64RT>;
1374
1387
1375
1388
// sin/cos
0 commit comments