From a62f04efab4331eeabd4441962f86a5e87db3f2d Mon Sep 17 00:00:00 2001
From: FernandoS27 <fsahmkow27@gmail.com>
Date: Sun, 21 Mar 2021 09:32:16 +0100
Subject: shader: Implement F2F

---
 src/shader_recompiler/frontend/ir/ir_emitter.cpp | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

(limited to 'src/shader_recompiler/frontend/ir/ir_emitter.cpp')

diff --git a/src/shader_recompiler/frontend/ir/ir_emitter.cpp b/src/shader_recompiler/frontend/ir/ir_emitter.cpp
index 1eda95071f..00c909f3e0 100644
--- a/src/shader_recompiler/frontend/ir/ir_emitter.cpp
+++ b/src/shader_recompiler/frontend/ir/ir_emitter.cpp
@@ -1361,7 +1361,7 @@ U32U64 IREmitter::UConvert(size_t result_bitsize, const U32U64& value) {
     throw NotImplementedException("Conversion from {} to {} bits", value.Type(), result_bitsize);
 }
 
-F16F32F64 IREmitter::FPConvert(size_t result_bitsize, const F16F32F64& value) {
+F16F32F64 IREmitter::FPConvert(size_t result_bitsize, const F16F32F64& value, FpControl control) {
     switch (result_bitsize) {
     case 16:
         switch (value.Type()) {
@@ -1369,7 +1369,7 @@ F16F32F64 IREmitter::FPConvert(size_t result_bitsize, const F16F32F64& value) {
             // Nothing to do
             return value;
         case Type::F32:
-            return Inst<F16>(Opcode::ConvertF16F32, value);
+            return Inst<F16>(Opcode::ConvertF16F32, Flags{control}, value);
         case Type::F64:
             throw LogicError("Illegal conversion from F64 to F16");
         default:
@@ -1379,12 +1379,12 @@ F16F32F64 IREmitter::FPConvert(size_t result_bitsize, const F16F32F64& value) {
     case 32:
         switch (value.Type()) {
         case Type::F16:
-            return Inst<F32>(Opcode::ConvertF32F16, value);
+            return Inst<F32>(Opcode::ConvertF32F16, Flags{control}, value);
         case Type::F32:
             // Nothing to do
             return value;
         case Type::F64:
-            return Inst<F64>(Opcode::ConvertF32F64, value);
+            return Inst<F32>(Opcode::ConvertF32F64, Flags{control}, value);
         default:
             break;
         }
@@ -1394,10 +1394,10 @@ F16F32F64 IREmitter::FPConvert(size_t result_bitsize, const F16F32F64& value) {
         case Type::F16:
             throw LogicError("Illegal conversion from F16 to F64");
         case Type::F32:
+            return Inst<F64>(Opcode::ConvertF64F32, Flags{control}, value);
+        case Type::F64:
             // Nothing to do
             return value;
-        case Type::F64:
-            return Inst<F64>(Opcode::ConvertF32F64, value);
         default:
             break;
         }
-- 
cgit v1.2.3-70-g09d2