summaryrefslogtreecommitdiff
path: root/src/shader_recompiler/frontend/ir/ir_emitter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/shader_recompiler/frontend/ir/ir_emitter.cpp')
-rw-r--r--src/shader_recompiler/frontend/ir/ir_emitter.cpp70
1 files changed, 35 insertions, 35 deletions
diff --git a/src/shader_recompiler/frontend/ir/ir_emitter.cpp b/src/shader_recompiler/frontend/ir/ir_emitter.cpp
index f42489d41..559ab9cca 100644
--- a/src/shader_recompiler/frontend/ir/ir_emitter.cpp
+++ b/src/shader_recompiler/frontend/ir/ir_emitter.cpp
@@ -547,11 +547,11 @@ F32 IREmitter::FPSqrt(const F32& value) {
547 547
548F16F32F64 IREmitter::FPSaturate(const F16F32F64& value) { 548F16F32F64 IREmitter::FPSaturate(const F16F32F64& value) {
549 switch (value.Type()) { 549 switch (value.Type()) {
550 case Type::U16: 550 case Type::F16:
551 return Inst<F16>(Opcode::FPSaturate16, value); 551 return Inst<F16>(Opcode::FPSaturate16, value);
552 case Type::U32: 552 case Type::F32:
553 return Inst<F32>(Opcode::FPSaturate32, value); 553 return Inst<F32>(Opcode::FPSaturate32, value);
554 case Type::U64: 554 case Type::F64:
555 return Inst<F64>(Opcode::FPSaturate64, value); 555 return Inst<F64>(Opcode::FPSaturate64, value);
556 default: 556 default:
557 ThrowInvalidType(value.Type()); 557 ThrowInvalidType(value.Type());
@@ -560,11 +560,11 @@ F16F32F64 IREmitter::FPSaturate(const F16F32F64& value) {
560 560
561F16F32F64 IREmitter::FPRoundEven(const F16F32F64& value) { 561F16F32F64 IREmitter::FPRoundEven(const F16F32F64& value) {
562 switch (value.Type()) { 562 switch (value.Type()) {
563 case Type::U16: 563 case Type::F16:
564 return Inst<F16>(Opcode::FPRoundEven16, value); 564 return Inst<F16>(Opcode::FPRoundEven16, value);
565 case Type::U32: 565 case Type::F32:
566 return Inst<F32>(Opcode::FPRoundEven32, value); 566 return Inst<F32>(Opcode::FPRoundEven32, value);
567 case Type::U64: 567 case Type::F64:
568 return Inst<F64>(Opcode::FPRoundEven64, value); 568 return Inst<F64>(Opcode::FPRoundEven64, value);
569 default: 569 default:
570 ThrowInvalidType(value.Type()); 570 ThrowInvalidType(value.Type());
@@ -573,11 +573,11 @@ F16F32F64 IREmitter::FPRoundEven(const F16F32F64& value) {
573 573
574F16F32F64 IREmitter::FPFloor(const F16F32F64& value) { 574F16F32F64 IREmitter::FPFloor(const F16F32F64& value) {
575 switch (value.Type()) { 575 switch (value.Type()) {
576 case Type::U16: 576 case Type::F16:
577 return Inst<F16>(Opcode::FPFloor16, value); 577 return Inst<F16>(Opcode::FPFloor16, value);
578 case Type::U32: 578 case Type::F32:
579 return Inst<F32>(Opcode::FPFloor32, value); 579 return Inst<F32>(Opcode::FPFloor32, value);
580 case Type::U64: 580 case Type::F64:
581 return Inst<F64>(Opcode::FPFloor64, value); 581 return Inst<F64>(Opcode::FPFloor64, value);
582 default: 582 default:
583 ThrowInvalidType(value.Type()); 583 ThrowInvalidType(value.Type());
@@ -586,11 +586,11 @@ F16F32F64 IREmitter::FPFloor(const F16F32F64& value) {
586 586
587F16F32F64 IREmitter::FPCeil(const F16F32F64& value) { 587F16F32F64 IREmitter::FPCeil(const F16F32F64& value) {
588 switch (value.Type()) { 588 switch (value.Type()) {
589 case Type::U16: 589 case Type::F16:
590 return Inst<F16>(Opcode::FPCeil16, value); 590 return Inst<F16>(Opcode::FPCeil16, value);
591 case Type::U32: 591 case Type::F32:
592 return Inst<F32>(Opcode::FPCeil32, value); 592 return Inst<F32>(Opcode::FPCeil32, value);
593 case Type::U64: 593 case Type::F64:
594 return Inst<F64>(Opcode::FPCeil64, value); 594 return Inst<F64>(Opcode::FPCeil64, value);
595 default: 595 default:
596 ThrowInvalidType(value.Type()); 596 ThrowInvalidType(value.Type());
@@ -599,11 +599,11 @@ F16F32F64 IREmitter::FPCeil(const F16F32F64& value) {
599 599
600F16F32F64 IREmitter::FPTrunc(const F16F32F64& value) { 600F16F32F64 IREmitter::FPTrunc(const F16F32F64& value) {
601 switch (value.Type()) { 601 switch (value.Type()) {
602 case Type::U16: 602 case Type::F16:
603 return Inst<F16>(Opcode::FPTrunc16, value); 603 return Inst<F16>(Opcode::FPTrunc16, value);
604 case Type::U32: 604 case Type::F32:
605 return Inst<F32>(Opcode::FPTrunc32, value); 605 return Inst<F32>(Opcode::FPTrunc32, value);
606 case Type::U64: 606 case Type::F64:
607 return Inst<F64>(Opcode::FPTrunc64, value); 607 return Inst<F64>(Opcode::FPTrunc64, value);
608 default: 608 default:
609 ThrowInvalidType(value.Type()); 609 ThrowInvalidType(value.Type());
@@ -729,33 +729,33 @@ U32U64 IREmitter::ConvertFToS(size_t bitsize, const F16F32F64& value) {
729 switch (bitsize) { 729 switch (bitsize) {
730 case 16: 730 case 16:
731 switch (value.Type()) { 731 switch (value.Type()) {
732 case Type::U16: 732 case Type::F16:
733 return Inst<U32>(Opcode::ConvertS16F16, value); 733 return Inst<U32>(Opcode::ConvertS16F16, value);
734 case Type::U32: 734 case Type::F32:
735 return Inst<U32>(Opcode::ConvertS16F32, value); 735 return Inst<U32>(Opcode::ConvertS16F32, value);
736 case Type::U64: 736 case Type::F64:
737 return Inst<U32>(Opcode::ConvertS16F64, value); 737 return Inst<U32>(Opcode::ConvertS16F64, value);
738 default: 738 default:
739 ThrowInvalidType(value.Type()); 739 ThrowInvalidType(value.Type());
740 } 740 }
741 case 32: 741 case 32:
742 switch (value.Type()) { 742 switch (value.Type()) {
743 case Type::U16: 743 case Type::F16:
744 return Inst<U32>(Opcode::ConvertS32F16, value); 744 return Inst<U32>(Opcode::ConvertS32F16, value);
745 case Type::U32: 745 case Type::F32:
746 return Inst<U32>(Opcode::ConvertS32F32, value); 746 return Inst<U32>(Opcode::ConvertS32F32, value);
747 case Type::U64: 747 case Type::F64:
748 return Inst<U32>(Opcode::ConvertS32F64, value); 748 return Inst<U32>(Opcode::ConvertS32F64, value);
749 default: 749 default:
750 ThrowInvalidType(value.Type()); 750 ThrowInvalidType(value.Type());
751 } 751 }
752 case 64: 752 case 64:
753 switch (value.Type()) { 753 switch (value.Type()) {
754 case Type::U16: 754 case Type::F16:
755 return Inst<U64>(Opcode::ConvertS64F16, value); 755 return Inst<U64>(Opcode::ConvertS64F16, value);
756 case Type::U32: 756 case Type::F32:
757 return Inst<U64>(Opcode::ConvertS64F32, value); 757 return Inst<U64>(Opcode::ConvertS64F32, value);
758 case Type::U64: 758 case Type::F64:
759 return Inst<U64>(Opcode::ConvertS64F64, value); 759 return Inst<U64>(Opcode::ConvertS64F64, value);
760 default: 760 default:
761 ThrowInvalidType(value.Type()); 761 ThrowInvalidType(value.Type());
@@ -769,33 +769,33 @@ U32U64 IREmitter::ConvertFToU(size_t bitsize, const F16F32F64& value) {
769 switch (bitsize) { 769 switch (bitsize) {
770 case 16: 770 case 16:
771 switch (value.Type()) { 771 switch (value.Type()) {
772 case Type::U16: 772 case Type::F16:
773 return Inst<U32>(Opcode::ConvertU16F16, value); 773 return Inst<U32>(Opcode::ConvertU16F16, value);
774 case Type::U32: 774 case Type::F32:
775 return Inst<U32>(Opcode::ConvertU16F32, value); 775 return Inst<U32>(Opcode::ConvertU16F32, value);
776 case Type::U64: 776 case Type::F64:
777 return Inst<U32>(Opcode::ConvertU16F64, value); 777 return Inst<U32>(Opcode::ConvertU16F64, value);
778 default: 778 default:
779 ThrowInvalidType(value.Type()); 779 ThrowInvalidType(value.Type());
780 } 780 }
781 case 32: 781 case 32:
782 switch (value.Type()) { 782 switch (value.Type()) {
783 case Type::U16: 783 case Type::F16:
784 return Inst<U32>(Opcode::ConvertU32F16, value); 784 return Inst<U32>(Opcode::ConvertU32F16, value);
785 case Type::U32: 785 case Type::F32:
786 return Inst<U32>(Opcode::ConvertU32F32, value); 786 return Inst<U32>(Opcode::ConvertU32F32, value);
787 case Type::U64: 787 case Type::F64:
788 return Inst<U32>(Opcode::ConvertU32F64, value); 788 return Inst<U32>(Opcode::ConvertU32F64, value);
789 default: 789 default:
790 ThrowInvalidType(value.Type()); 790 ThrowInvalidType(value.Type());
791 } 791 }
792 case 64: 792 case 64:
793 switch (value.Type()) { 793 switch (value.Type()) {
794 case Type::U16: 794 case Type::F16:
795 return Inst<U64>(Opcode::ConvertU64F16, value); 795 return Inst<U64>(Opcode::ConvertU64F16, value);
796 case Type::U32: 796 case Type::F32:
797 return Inst<U64>(Opcode::ConvertU64F32, value); 797 return Inst<U64>(Opcode::ConvertU64F32, value);
798 case Type::U64: 798 case Type::F64:
799 return Inst<U64>(Opcode::ConvertU64F64, value); 799 return Inst<U64>(Opcode::ConvertU64F64, value);
800 default: 800 default:
801 ThrowInvalidType(value.Type()); 801 ThrowInvalidType(value.Type());
@@ -829,10 +829,10 @@ U32U64 IREmitter::ConvertU(size_t result_bitsize, const U32U64& value) {
829 case 64: 829 case 64:
830 switch (value.Type()) { 830 switch (value.Type()) {
831 case Type::U32: 831 case Type::U32:
832 return Inst<U64>(Opcode::ConvertU64U32, value);
833 case Type::U64:
832 // Nothing to do 834 // Nothing to do
833 return value; 835 return value;
834 case Type::U64:
835 return Inst<U64>(Opcode::ConvertU64U32, value);
836 default: 836 default:
837 break; 837 break;
838 } 838 }