text: /* 
  SPDX-License-Identifier: MIT
  Copyright (C) 2018-present iced project and contributors
   */
  
  // ⚠️This file was generated by GENERATOR!🦹‍♂️
  
  #pragma once
  
  #if defined(INTEL)
  #include <array>
  #include <stdexcept>
  #include <string>
  #include "../ToString.h"
  #include "../Internal/StringHelpers.h"
  namespace Iced::Intel::IntelFormatterInternal {
  	enum class CtorKind {
  		Previous ,
  		Normal_1 ,
  		Normal_2 ,
  		asz ,
  		StringIg0 ,
  		StringIg1 ,
  		bcst ,
  		bnd ,
  		ST2 ,
  		DeclareData ,
  		ST_STi ,
  		STi_ST ,
  		imul ,
  		opmask_op ,
  		invlpga ,
  		maskmovq ,
  		memsize ,
  		movabs ,
  		nop ,
  		os2 ,
  		os3 ,
  		os_bnd ,
  		CC_1 ,
  		CC_2 ,
  		CC_3 ,
  		os_jcc_a_1 ,
  		os_jcc_a_2 ,
  		os_jcc_a_3 ,
  		os_jcc_b_1 ,
  		os_jcc_b_2 ,
  		os_jcc_b_3 ,
  		os_loopcc ,
  		os_loop ,
  		pclmulqdq ,
  		pops ,
  		reg ,
  		Reg16 ,
  		Reg32 ,
  		ST1_2 ,
  		ST1_3 ,
  	};
  	constexpr int operator+(const CtorKind& a, const CtorKind& b) { return ((int)a + (int)b); }
  	constexpr int operator+(const CtorKind& a, const int& b) { return ((int)a + b); }
  	constexpr int operator+(const int& a, const CtorKind& b) { return (a + (int)b); }
  	constexpr int operator-(const CtorKind& a, const CtorKind& b) { return ((int)a - (int)b); }
  	constexpr int operator-(const CtorKind& a, const int& b) { return ((int)a - b); }
  	constexpr int operator-(const int& a, const CtorKind& b) { return (a - (int)b); }
  	constexpr CtorKind operator++(CtorKind& a, int) { auto temp = a; a = CtorKind(a + 1); return temp; }
  	constexpr CtorKind& operator++(CtorKind& a) { return a = CtorKind(a + 1); }
  	constexpr CtorKind operator--(CtorKind& a, int) { auto temp = a; a = CtorKind(a - 1); return temp; }
  	constexpr CtorKind& operator--(CtorKind& a) { return a = CtorKind(a - 1); }
  	constexpr bool operator==(const CtorKind& a, const int& b) { return ((int)a == b); }
  	constexpr bool operator==(const int& a, const CtorKind& b) { return (a == (int)b); }
  	constexpr bool operator>=(const CtorKind& a, const int& b) { return ((int)a >= b); }
  	constexpr bool operator>=(const int& a, const CtorKind& b) { return (a >= (int)b); }
  	constexpr bool operator<=(const CtorKind& a, const int& b) { return ((int)a <= b); }
  	constexpr bool operator<=(const int& a, const CtorKind& b) { return (a <= (int)b); }
  	constexpr bool operator>(const CtorKind& a, const int& b) { return ((int)a > b); }
  	constexpr bool operator>(const int& a, const CtorKind& b) { return (a > (int)b); }
  	constexpr bool operator<(const CtorKind& a, const int& b) { return ((int)a < b); }
  	constexpr bool operator<(const int& a, const CtorKind& b) { return (a < (int)b); }
  	constexpr bool operator!=(const CtorKind& a, const int& b) { return ((int)a != b); }
  	constexpr bool operator!=(const int& a, const CtorKind& b) { return (a != (int)b); }
  }
  template <>
  constexpr std::string Iced::Intel::ToString(const Iced::Intel::IntelFormatterInternal::CtorKind& e) {
  	switch (e) {
  		case Iced::Intel::IntelFormatterInternal::CtorKind::Previous: return "Previous";
  		case Iced::Intel::IntelFormatterInternal::CtorKind::Normal_1: return "Normal_1";
  		case Iced::Intel::IntelFormatterInternal::CtorKind::Normal_2: return "Normal_2";
  		case Iced::Intel::IntelFormatterInternal::CtorKind::asz: return "asz";
  		case Iced::Intel::IntelFormatterInternal::CtorKind::StringIg0: return "StringIg0";
  		case Iced::Intel::IntelFormatterInternal::CtorKind::StringIg1: return "StringIg1";
  		case Iced::Intel::IntelFormatterInternal::CtorKind::bcst: return "bcst";
  		case Iced::Intel::IntelFormatterInternal::CtorKind::bnd: return "bnd";
  		case Iced::Intel::IntelFormatterInternal::CtorKind::ST2: return "ST2";
  		case Iced::Intel::IntelFormatterInternal::CtorKind::DeclareData: return "DeclareData";
  		case Iced::Intel::IntelFormatterInternal::CtorKind::ST_STi: return "ST_STi";
  		case Iced::Intel::IntelFormatterInternal::CtorKind::STi_ST: return "STi_ST";
  		case Iced::Intel::IntelFormatterInternal::CtorKind::imul: return "imul";
  		case Iced::Intel::IntelFormatterInternal::CtorKind::opmask_op: return "opmask_op";
  		case Iced::Intel::IntelFormatterInternal::CtorKind::invlpga: return "invlpga";
  		case Iced::Intel::IntelFormatterInternal::CtorKind::maskmovq: return "maskmovq";
  		case Iced::Intel::IntelFormatterInternal::CtorKind::memsize: return "memsize";
  		case Iced::Intel::IntelFormatterInternal::CtorKind::movabs: return "movabs";
  		case Iced::Intel::IntelFormatterInternal::CtorKind::nop: return "nop";
  		case Iced::Intel::IntelFormatterInternal::CtorKind::os2: return "os2";
  		case Iced::Intel::IntelFormatterInternal::CtorKind::os3: return "os3";
  		case Iced::Intel::IntelFormatterInternal::CtorKind::os_bnd: return "os_bnd";
  		case Iced::Intel::IntelFormatterInternal::CtorKind::CC_1: return "CC_1";
  		case Iced::Intel::IntelFormatterInternal::CtorKind::CC_2: return "CC_2";
  		case Iced::Intel::IntelFormatterInternal::CtorKind::CC_3: return "CC_3";
  		case Iced::Intel::IntelFormatterInternal::CtorKind::os_jcc_a_1: return "os_jcc_a_1";
  		case Iced::Intel::IntelFormatterInternal::CtorKind::os_jcc_a_2: return "os_jcc_a_2";
  		case Iced::Intel::IntelFormatterInternal::CtorKind::os_jcc_a_3: return "os_jcc_a_3";
  		case Iced::Intel::IntelFormatterInternal::CtorKind::os_jcc_b_1: return "os_jcc_b_1";
  		case Iced::Intel::IntelFormatterInternal::CtorKind::os_jcc_b_2: return "os_jcc_b_2";
  		case Iced::Intel::IntelFormatterInternal::CtorKind::os_jcc_b_3: return "os_jcc_b_3";
  		case Iced::Intel::IntelFormatterInternal::CtorKind::os_loopcc: return "os_loopcc";
  		case Iced::Intel::IntelFormatterInternal::CtorKind::os_loop: return "os_loop";
  		case Iced::Intel::IntelFormatterInternal::CtorKind::pclmulqdq: return "pclmulqdq";
  		case Iced::Intel::IntelFormatterInternal::CtorKind::pops: return "pops";
  		case Iced::Intel::IntelFormatterInternal::CtorKind::reg: return "reg";
  		case Iced::Intel::IntelFormatterInternal::CtorKind::Reg16: return "Reg16";
  		case Iced::Intel::IntelFormatterInternal::CtorKind::Reg32: return "Reg32";
  		case Iced::Intel::IntelFormatterInternal::CtorKind::ST1_2: return "ST1_2";
  		case Iced::Intel::IntelFormatterInternal::CtorKind::ST1_3: return "ST1_3";
  		default: return Internal::StringHelpers::ToDec((int)e);
  	}
  }
  #endif
  