Lines Matching refs:f16
16 def f16imm : Operand<f16>;
193 !eq(name, "f16"): Int16Regs,
317 !strconcat(OpcStr, ".ftz.f16 \t$dst, $a, $b;"),
318 [(set Int16Regs:$dst, (OpNode (f16 Int16Regs:$a), (f16 Int16Regs:$b)))]>,
323 !strconcat(OpcStr, ".f16 \t$dst, $a, $b;"),
324 [(set Int16Regs:$dst, (OpNode (f16 Int16Regs:$a), (f16 Int16Regs:$b)))]>,
416 !strconcat(OpcStr, ".ftz.f16 \t$dst, $a, $b;"),
417 [(set Int16Regs:$dst, (OpNode (f16 Int16Regs:$a), (f16 Int16Regs:$b)))]>,
422 !strconcat(OpcStr, ".f16 \t$dst, $a, $b;"),
423 [(set Int16Regs:$dst, (OpNode (f16 Int16Regs:$a), (f16 Int16Regs:$b)))]>,
503 !strconcat(OpcStr, ".rn.ftz.f16 \t$dst, $a, $b;"),
504 [(set Int16Regs:$dst, (OpNode (f16 Int16Regs:$a), (f16 Int16Regs:$b)))]>,
509 !strconcat(OpcStr, ".rn.f16 \t$dst, $a, $b;"),
510 [(set Int16Regs:$dst, (OpNode (f16 Int16Regs:$a), (f16 Int16Regs:$b)))]>,
576 !strconcat(OpcStr, ".ftz.f16 \t$dst, $a;"),
577 [(set Int16Regs:$dst, (OpNode (f16 Int16Regs:$a)))]>,
583 def f16 : NVPTXInst<(outs Int16Regs:$dst), (ins Int16Regs:$a),
584 !strconcat(OpcStr, ".f16 \t$dst, $a;"),
585 [(set Int16Regs:$dst, (OpNode (f16 Int16Regs:$a)))]>,
659 ToType, ".f16 \t$dst, $src;"), []>,
697 defm CVT_f16 : CVT_FROM_ALL<"f16", Int16Regs>;
790 defm SELP_f16 : SELP_PATTERN<"b16", f16, Int16Regs, f16imm, fpimm>;
1169 // fp16 immediate values in .f16 instructions. Instead we have to load
1202 def FNEG16_ftz : FNEG_F16_F16X2<"neg.ftz.f16", f16, Int16Regs, doF32FTZ>;
1203 def FNEG16 : FNEG_F16_F16X2<"neg.f16", f16, Int16Regs, True>;
1411 defm FMA16_ftz : FMA_F16<"fma.rn.ftz.f16", f16, Int16Regs, doF32FTZ>;
1412 defm FMA16 : FMA_F16<"fma.rn.f16", f16, Int16Regs, True>;
1997 "setp${cmp:base}${cmp:ftz}.f16 \t$dst, $a, $b;",
2047 defm SET_f16 : SET<"f16", Int16Regs, f16imm>;
2128 // We have to use .b16 here as there's no mov.f16.
2364 // f16 -> pred
2365 def : Pat<(i1 (OpNode (f16 Int16Regs:$a), (f16 Int16Regs:$b))),
2368 def : Pat<(i1 (OpNode (f16 Int16Regs:$a), (f16 Int16Regs:$b))),
2371 def : Pat<(i1 (OpNode (f16 Int16Regs:$a), fpimm:$b)),
2374 def : Pat<(i1 (OpNode (f16 Int16Regs:$a), fpimm:$b)),
2377 def : Pat<(i1 (OpNode fpimm:$a, (f16 Int16Regs:$b))),
2380 def : Pat<(i1 (OpNode fpimm:$a, (f16 Int16Regs:$b))),
2429 // f16 -> i32
2430 def : Pat<(i32 (OpNode (f16 Int16Regs:$a), (f16 Int16Regs:$b))),
2433 def : Pat<(i32 (OpNode (f16 Int16Regs:$a), (f16 Int16Regs:$b))),
2436 def : Pat<(i32 (OpNode (f16 Int16Regs:$a), fpimm:$b)),
2439 def : Pat<(i32 (OpNode (f16 Int16Regs:$a), fpimm:$b)),
2442 def : Pat<(i32 (OpNode fpimm:$a, (f16 Int16Regs:$b))),
2445 def : Pat<(i32 (OpNode fpimm:$a, (f16 Int16Regs:$b))),
2947 foreach vt = [f16, bf16] in {
3253 foreach vt = [f16, bf16] in {
3277 // sint -> f16
3278 def : Pat<(f16 (sint_to_fp Int1Regs:$a)),
3280 def : Pat<(f16 (sint_to_fp Int16Regs:$a)),
3282 def : Pat<(f16 (sint_to_fp Int32Regs:$a)),
3284 def : Pat<(f16 (sint_to_fp Int64Regs:$a)),
3287 // uint -> f16
3288 def : Pat<(f16 (uint_to_fp Int1Regs:$a)),
3290 def : Pat<(f16 (uint_to_fp Int16Regs:$a)),
3292 def : Pat<(f16 (uint_to_fp Int32Regs:$a)),
3294 def : Pat<(f16 (uint_to_fp Int64Regs:$a)),
3358 // f16 -> sint
3359 def : Pat<(i1 (fp_to_sint (f16 Int16Regs:$a))),
3361 def : Pat<(i16 (fp_to_sint (f16 Int16Regs:$a))),
3362 (CVT_s16_f16 (f16 Int16Regs:$a), CvtRZI)>;
3363 def : Pat<(i32 (fp_to_sint (f16 Int16Regs:$a))),
3364 (CVT_s32_f16 (f16 Int16Regs:$a), CvtRZI)>;
3365 def : Pat<(i64 (fp_to_sint (f16 Int16Regs:$a))),
3368 // f16 -> uint
3369 def : Pat<(i1 (fp_to_uint (f16 Int16Regs:$a))),
3371 def : Pat<(i16 (fp_to_uint (f16 Int16Regs:$a))),
3373 def : Pat<(i32 (fp_to_uint (f16 Int16Regs:$a))),
3375 def : Pat<(i64 (fp_to_uint (f16 Int16Regs:$a))),
3541 def : Pat<(select (i32 Int32Regs:$pred), (f16 Int16Regs:$a), (f16 Int16Regs:$b)),
3631 def : Pat<(v2f16 (build_vector (f16 Int16Regs:$a), (f16 Int16Regs:$b))),
3704 // fpround f32 -> f16
3705 def : Pat<(f16 (fpround Float32Regs:$a)),
3712 // fpround f64 -> f16
3713 def : Pat<(f16 (fpround Float64Regs:$a)),
3725 // fpextend f16 -> f32
3726 def : Pat<(f32 (fpextend (f16 Int16Regs:$a))),
3728 def : Pat<(f32 (fpextend (f16 Int16Regs:$a))),
3736 // fpextend f16 -> f64
3737 def : Pat<(f64 (fpextend (f16 Int16Regs:$a))),
3756 def : Pat<(OpNode (f16 Int16Regs:$a)),