// Code generated by "stringer -type=Op -trimprefix=O node.go"; DO NOT EDIT.

package ir

import "strconv"

func _() {
	// An "invalid array index" compiler error signifies that the constant values have changed.
	// Re-run the stringer command to generate them again.
	var x [1]struct{}
	_ = x[OXXX-0]
	_ = x[ONAME-1]
	_ = x[ONONAME-2]
	_ = x[OTYPE-3]
	_ = x[OPACK-4]
	_ = x[OLITERAL-5]
	_ = x[ONIL-6]
	_ = x[OADD-7]
	_ = x[OSUB-8]
	_ = x[OOR-9]
	_ = x[OXOR-10]
	_ = x[OADDSTR-11]
	_ = x[OADDR-12]
	_ = x[OANDAND-13]
	_ = x[OAPPEND-14]
	_ = x[OBYTES2STR-15]
	_ = x[OBYTES2STRTMP-16]
	_ = x[ORUNES2STR-17]
	_ = x[OSTR2BYTES-18]
	_ = x[OSTR2BYTESTMP-19]
	_ = x[OSTR2RUNES-20]
	_ = x[OSLICE2ARRPTR-21]
	_ = x[OAS-22]
	_ = x[OAS2-23]
	_ = x[OAS2DOTTYPE-24]
	_ = x[OAS2FUNC-25]
	_ = x[OAS2MAPR-26]
	_ = x[OAS2RECV-27]
	_ = x[OASOP-28]
	_ = x[OCALL-29]
	_ = x[OCALLFUNC-30]
	_ = x[OCALLMETH-31]
	_ = x[OCALLINTER-32]
	_ = x[OCALLPART-33]
	_ = x[OCAP-34]
	_ = x[OCLOSE-35]
	_ = x[OCLOSURE-36]
	_ = x[OCOMPLIT-37]
	_ = x[OMAPLIT-38]
	_ = x[OSTRUCTLIT-39]
	_ = x[OARRAYLIT-40]
	_ = x[OSLICELIT-41]
	_ = x[OPTRLIT-42]
	_ = x[OCONV-43]
	_ = x[OCONVIFACE-44]
	_ = x[OCONVNOP-45]
	_ = x[OCOPY-46]
	_ = x[ODCL-47]
	_ = x[ODCLFUNC-48]
	_ = x[ODCLCONST-49]
	_ = x[ODCLTYPE-50]
	_ = x[ODELETE-51]
	_ = x[ODOT-52]
	_ = x[ODOTPTR-53]
	_ = x[ODOTMETH-54]
	_ = x[ODOTINTER-55]
	_ = x[OXDOT-56]
	_ = x[ODOTTYPE-57]
	_ = x[ODOTTYPE2-58]
	_ = x[OEQ-59]
	_ = x[ONE-60]
	_ = x[OLT-61]
	_ = x[OLE-62]
	_ = x[OGE-63]
	_ = x[OGT-64]
	_ = x[ODEREF-65]
	_ = x[OINDEX-66]
	_ = x[OINDEXMAP-67]
	_ = x[OKEY-68]
	_ = x[OSTRUCTKEY-69]
	_ = x[OLEN-70]
	_ = x[OMAKE-71]
	_ = x[OMAKECHAN-72]
	_ = x[OMAKEMAP-73]
	_ = x[OMAKESLICE-74]
	_ = x[OMAKESLICECOPY-75]
	_ = x[OMUL-76]
	_ = x[ODIV-77]
	_ = x[OMOD-78]
	_ = x[OLSH-79]
	_ = x[ORSH-80]
	_ = x[OAND-81]
	_ = x[OANDNOT-82]
	_ = x[ONEW-83]
	_ = x[ONOT-84]
	_ = x[OBITNOT-85]
	_ = x[OPLUS-86]
	_ = x[ONEG-87]
	_ = x[OOROR-88]
	_ = x[OPANIC-89]
	_ = x[OPRINT-90]
	_ = x[OPRINTN-91]
	_ = x[OPAREN-92]
	_ = x[OSEND-93]
	_ = x[OSLICE-94]
	_ = x[OSLICEARR-95]
	_ = x[OSLICESTR-96]
	_ = x[OSLICE3-97]
	_ = x[OSLICE3ARR-98]
	_ = x[OSLICEHEADER-99]
	_ = x[ORECOVER-100]
	_ = x[ORECV-101]
	_ = x[ORUNESTR-102]
	_ = x[OSELRECV2-103]
	_ = x[OIOTA-104]
	_ = x[OREAL-105]
	_ = x[OIMAG-106]
	_ = x[OCOMPLEX-107]
	_ = x[OALIGNOF-108]
	_ = x[OOFFSETOF-109]
	_ = x[OSIZEOF-110]
	_ = x[OUNSAFEADD-111]
	_ = x[OUNSAFESLICE-112]
	_ = x[OMETHEXPR-113]
	_ = x[OBLOCK-114]
	_ = x[OBREAK-115]
	_ = x[OCASE-116]
	_ = x[OCONTINUE-117]
	_ = x[ODEFER-118]
	_ = x[OFALL-119]
	_ = x[OFOR-120]
	_ = x[OFORUNTIL-121]
	_ = x[OGOTO-122]
	_ = x[OIF-123]
	_ = x[OLABEL-124]
	_ = x[OGO-125]
	_ = x[ORANGE-126]
	_ = x[ORETURN-127]
	_ = x[OSELECT-128]
	_ = x[OSWITCH-129]
	_ = x[OTYPESW-130]
	_ = x[OFUNCINST-131]
	_ = x[OTCHAN-132]
	_ = x[OTMAP-133]
	_ = x[OTSTRUCT-134]
	_ = x[OTINTER-135]
	_ = x[OTFUNC-136]
	_ = x[OTARRAY-137]
	_ = x[OTSLICE-138]
	_ = x[OINLCALL-139]
	_ = x[OEFACE-140]
	_ = x[OITAB-141]
	_ = x[OIDATA-142]
	_ = x[OSPTR-143]
	_ = x[OCFUNC-144]
	_ = x[OCHECKNIL-145]
	_ = x[OVARDEF-146]
	_ = x[OVARKILL-147]
	_ = x[OVARLIVE-148]
	_ = x[ORESULT-149]
	_ = x[OINLMARK-150]
	_ = x[OLINKSYMOFFSET-151]
	_ = x[OTAILCALL-152]
	_ = x[OGETG-153]
	_ = x[OEND-154]
}

const _Op_name = "XXXNAMENONAMETYPEPACKLITERALNILADDSUBORXORADDSTRADDRANDANDAPPENDBYTES2STRBYTES2STRTMPRUNES2STRSTR2BYTESSTR2BYTESTMPSTR2RUNESSLICE2ARRPTRASAS2AS2DOTTYPEAS2FUNCAS2MAPRAS2RECVASOPCALLCALLFUNCCALLMETHCALLINTERCALLPARTCAPCLOSECLOSURECOMPLITMAPLITSTRUCTLITARRAYLITSLICELITPTRLITCONVCONVIFACECONVNOPCOPYDCLDCLFUNCDCLCONSTDCLTYPEDELETEDOTDOTPTRDOTMETHDOTINTERXDOTDOTTYPEDOTTYPE2EQNELTLEGEGTDEREFINDEXINDEXMAPKEYSTRUCTKEYLENMAKEMAKECHANMAKEMAPMAKESLICEMAKESLICECOPYMULDIVMODLSHRSHANDANDNOTNEWNOTBITNOTPLUSNEGORORPANICPRINTPRINTNPARENSENDSLICESLICEARRSLICESTRSLICE3SLICE3ARRSLICEHEADERRECOVERRECVRUNESTRSELRECV2IOTAREALIMAGCOMPLEXALIGNOFOFFSETOFSIZEOFUNSAFEADDUNSAFESLICEMETHEXPRBLOCKBREAKCASECONTINUEDEFERFALLFORFORUNTILGOTOIFLABELGORANGERETURNSELECTSWITCHTYPESWFUNCINSTTCHANTMAPTSTRUCTTINTERTFUNCTARRAYTSLICEINLCALLEFACEITABIDATASPTRCFUNCCHECKNILVARDEFVARKILLVARLIVERESULTINLMARKLINKSYMOFFSETTAILCALLGETGEND"

var _Op_index = [...]uint16{0, 3, 7, 13, 17, 21, 28, 31, 34, 37, 39, 42, 48, 52, 58, 64, 73, 85, 94, 103, 115, 124, 136, 138, 141, 151, 158, 165, 172, 176, 180, 188, 196, 205, 213, 216, 221, 228, 235, 241, 250, 258, 266, 272, 276, 285, 292, 296, 299, 306, 314, 321, 327, 330, 336, 343, 351, 355, 362, 370, 372, 374, 376, 378, 380, 382, 387, 392, 400, 403, 412, 415, 419, 427, 434, 443, 456, 459, 462, 465, 468, 471, 474, 480, 483, 486, 492, 496, 499, 503, 508, 513, 519, 524, 528, 533, 541, 549, 555, 564, 575, 582, 586, 593, 601, 605, 609, 613, 620, 627, 635, 641, 650, 661, 669, 674, 679, 683, 691, 696, 700, 703, 711, 715, 717, 722, 724, 729, 735, 741, 747, 753, 761, 766, 770, 777, 783, 788, 794, 800, 807, 812, 816, 821, 825, 830, 838, 844, 851, 858, 864, 871, 884, 892, 896, 899}

func (i Op) String() string {
	if i >= Op(len(_Op_index)-1) {
		return "Op(" + strconv.FormatInt(int64(i), 10) + ")"
	}
	return _Op_name[_Op_index[i]:_Op_index[i+1]]
}
