glasm: Add fp min/max insts and fix store for fp64 on GLASM
This commit is contained in:
		| @@ -75,22 +75,20 @@ void EmitFPFma64(EmitContext& ctx, IR::Inst& inst, ScalarF64 a, ScalarF64 b, Sca | ||||
|     ctx.LongAdd("MAD.F64 {}.x,{},{},{};", inst, a, b, c); | ||||
| } | ||||
|  | ||||
| void EmitFPMax32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] ScalarF32 a, | ||||
|                  [[maybe_unused]] ScalarF32 b) { | ||||
|     throw NotImplementedException("GLASM instruction"); | ||||
| void EmitFPMax32(EmitContext& ctx, IR::Inst& inst, ScalarF32 a, ScalarF32 b) { | ||||
|     ctx.Add("MAX.F {}.x,{},{};", inst, a, b); | ||||
| } | ||||
|  | ||||
| void EmitFPMax64(EmitContext& ctx, IR::Inst& inst, ScalarF64 a, ScalarF64 b) { | ||||
|     ctx.LongAdd("MAX.F64 {},{},{};", inst, a, b); | ||||
|     ctx.LongAdd("MAX.F64 {}.x,{},{};", inst, a, b); | ||||
| } | ||||
|  | ||||
| void EmitFPMin32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] ScalarF32 a, | ||||
|                  [[maybe_unused]] ScalarF32 b) { | ||||
|     throw NotImplementedException("GLASM instruction"); | ||||
| void EmitFPMin32(EmitContext& ctx, IR::Inst& inst, ScalarF32 a, ScalarF32 b) { | ||||
|     ctx.Add("MIN.F {}.x,{},{};", inst, a, b); | ||||
| } | ||||
|  | ||||
| void EmitFPMin64(EmitContext& ctx, IR::Inst& inst, ScalarF64 a, ScalarF64 b) { | ||||
|     ctx.LongAdd("MIN.F64 {},{},{};", inst, a, b); | ||||
|     ctx.LongAdd("MIN.F64 {}.x,{},{};", inst, a, b); | ||||
| } | ||||
|  | ||||
| void EmitFPMul16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, | ||||
|   | ||||
| @@ -221,9 +221,9 @@ void EmitFPAdd64(EmitContext& ctx, IR::Inst& inst, ScalarF64 a, ScalarF64 b); | ||||
| void EmitFPFma16(EmitContext& ctx, IR::Inst& inst, Register a, Register b, Register c); | ||||
| void EmitFPFma32(EmitContext& ctx, IR::Inst& inst, ScalarF32 a, ScalarF32 b, ScalarF32 c); | ||||
| void EmitFPFma64(EmitContext& ctx, IR::Inst& inst, ScalarF64 a, ScalarF64 b, ScalarF64 c); | ||||
| void EmitFPMax32(EmitContext& ctx, ScalarF32 a, ScalarF32 b); | ||||
| void EmitFPMax32(EmitContext& ctx, IR::Inst& inst, ScalarF32 a, ScalarF32 b); | ||||
| void EmitFPMax64(EmitContext& ctx, IR::Inst& inst, ScalarF64 a, ScalarF64 b); | ||||
| void EmitFPMin32(EmitContext& ctx, ScalarF32 a, ScalarF32 b); | ||||
| void EmitFPMin32(EmitContext& ctx, IR::Inst& inst, ScalarF32 a, ScalarF32 b); | ||||
| void EmitFPMin64(EmitContext& ctx, IR::Inst& inst, ScalarF64 a, ScalarF64 b); | ||||
| void EmitFPMul16(EmitContext& ctx, IR::Inst& inst, Register a, Register b); | ||||
| void EmitFPMul32(EmitContext& ctx, IR::Inst& inst, ScalarF32 a, ScalarF32 b); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user