// Code generated by "stringer -type SpecialOperand -trimprefix SPOP_"; DO NOT EDIT.

package arm64

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[SPOP_PLDL1KEEP-0]
	_ = x[SPOP_BEGIN-0]
	_ = x[SPOP_PLDL1STRM-1]
	_ = x[SPOP_PLDL2KEEP-2]
	_ = x[SPOP_PLDL2STRM-3]
	_ = x[SPOP_PLDL3KEEP-4]
	_ = x[SPOP_PLDL3STRM-5]
	_ = x[SPOP_PLIL1KEEP-6]
	_ = x[SPOP_PLIL1STRM-7]
	_ = x[SPOP_PLIL2KEEP-8]
	_ = x[SPOP_PLIL2STRM-9]
	_ = x[SPOP_PLIL3KEEP-10]
	_ = x[SPOP_PLIL3STRM-11]
	_ = x[SPOP_PSTL1KEEP-12]
	_ = x[SPOP_PSTL1STRM-13]
	_ = x[SPOP_PSTL2KEEP-14]
	_ = x[SPOP_PSTL2STRM-15]
	_ = x[SPOP_PSTL3KEEP-16]
	_ = x[SPOP_PSTL3STRM-17]
	_ = x[SPOP_VLx2-18]
	_ = x[SPOP_VLx4-19]
	_ = x[SPOP_VMALLE1IS-20]
	_ = x[SPOP_VAE1IS-21]
	_ = x[SPOP_ASIDE1IS-22]
	_ = x[SPOP_VAAE1IS-23]
	_ = x[SPOP_VALE1IS-24]
	_ = x[SPOP_VAALE1IS-25]
	_ = x[SPOP_VMALLE1-26]
	_ = x[SPOP_VAE1-27]
	_ = x[SPOP_ASIDE1-28]
	_ = x[SPOP_VAAE1-29]
	_ = x[SPOP_VALE1-30]
	_ = x[SPOP_VAALE1-31]
	_ = x[SPOP_IPAS2E1IS-32]
	_ = x[SPOP_IPAS2LE1IS-33]
	_ = x[SPOP_ALLE2IS-34]
	_ = x[SPOP_VAE2IS-35]
	_ = x[SPOP_ALLE1IS-36]
	_ = x[SPOP_VALE2IS-37]
	_ = x[SPOP_VMALLS12E1IS-38]
	_ = x[SPOP_IPAS2E1-39]
	_ = x[SPOP_IPAS2LE1-40]
	_ = x[SPOP_ALLE2-41]
	_ = x[SPOP_VAE2-42]
	_ = x[SPOP_ALLE1-43]
	_ = x[SPOP_VALE2-44]
	_ = x[SPOP_VMALLS12E1-45]
	_ = x[SPOP_ALLE3IS-46]
	_ = x[SPOP_VAE3IS-47]
	_ = x[SPOP_VALE3IS-48]
	_ = x[SPOP_ALLE3-49]
	_ = x[SPOP_VAE3-50]
	_ = x[SPOP_VALE3-51]
	_ = x[SPOP_VMALLE1OS-52]
	_ = x[SPOP_VAE1OS-53]
	_ = x[SPOP_ASIDE1OS-54]
	_ = x[SPOP_VAAE1OS-55]
	_ = x[SPOP_VALE1OS-56]
	_ = x[SPOP_VAALE1OS-57]
	_ = x[SPOP_RVAE1IS-58]
	_ = x[SPOP_RVAAE1IS-59]
	_ = x[SPOP_RVALE1IS-60]
	_ = x[SPOP_RVAALE1IS-61]
	_ = x[SPOP_RVAE1OS-62]
	_ = x[SPOP_RVAAE1OS-63]
	_ = x[SPOP_RVALE1OS-64]
	_ = x[SPOP_RVAALE1OS-65]
	_ = x[SPOP_RVAE1-66]
	_ = x[SPOP_RVAAE1-67]
	_ = x[SPOP_RVALE1-68]
	_ = x[SPOP_RVAALE1-69]
	_ = x[SPOP_RIPAS2E1IS-70]
	_ = x[SPOP_RIPAS2LE1IS-71]
	_ = x[SPOP_ALLE2OS-72]
	_ = x[SPOP_VAE2OS-73]
	_ = x[SPOP_ALLE1OS-74]
	_ = x[SPOP_VALE2OS-75]
	_ = x[SPOP_VMALLS12E1OS-76]
	_ = x[SPOP_RVAE2IS-77]
	_ = x[SPOP_RVALE2IS-78]
	_ = x[SPOP_IPAS2E1OS-79]
	_ = x[SPOP_RIPAS2E1-80]
	_ = x[SPOP_RIPAS2E1OS-81]
	_ = x[SPOP_IPAS2LE1OS-82]
	_ = x[SPOP_RIPAS2LE1-83]
	_ = x[SPOP_RIPAS2LE1OS-84]
	_ = x[SPOP_RVAE2OS-85]
	_ = x[SPOP_RVALE2OS-86]
	_ = x[SPOP_RVAE2-87]
	_ = x[SPOP_RVALE2-88]
	_ = x[SPOP_ALLE3OS-89]
	_ = x[SPOP_VAE3OS-90]
	_ = x[SPOP_VALE3OS-91]
	_ = x[SPOP_RVAE3IS-92]
	_ = x[SPOP_RVALE3IS-93]
	_ = x[SPOP_RVAE3OS-94]
	_ = x[SPOP_RVALE3OS-95]
	_ = x[SPOP_RVAE3-96]
	_ = x[SPOP_RVALE3-97]
	_ = x[SPOP_IVAC-98]
	_ = x[SPOP_ISW-99]
	_ = x[SPOP_CSW-100]
	_ = x[SPOP_CISW-101]
	_ = x[SPOP_ZVA-102]
	_ = x[SPOP_CVAC-103]
	_ = x[SPOP_CVAU-104]
	_ = x[SPOP_CIVAC-105]
	_ = x[SPOP_IGVAC-106]
	_ = x[SPOP_IGSW-107]
	_ = x[SPOP_IGDVAC-108]
	_ = x[SPOP_IGDSW-109]
	_ = x[SPOP_CGSW-110]
	_ = x[SPOP_CGDSW-111]
	_ = x[SPOP_CIGSW-112]
	_ = x[SPOP_CIGDSW-113]
	_ = x[SPOP_GVA-114]
	_ = x[SPOP_GZVA-115]
	_ = x[SPOP_CGVAC-116]
	_ = x[SPOP_CGDVAC-117]
	_ = x[SPOP_CGVAP-118]
	_ = x[SPOP_CGDVAP-119]
	_ = x[SPOP_CGVADP-120]
	_ = x[SPOP_CGDVADP-121]
	_ = x[SPOP_CIGVAC-122]
	_ = x[SPOP_CIGDVAC-123]
	_ = x[SPOP_CVAP-124]
	_ = x[SPOP_CVADP-125]
	_ = x[SPOP_DAIFSet-126]
	_ = x[SPOP_DAIFClr-127]
	_ = x[SPOP_EQ-128]
	_ = x[SPOP_NE-129]
	_ = x[SPOP_HS-130]
	_ = x[SPOP_LO-131]
	_ = x[SPOP_MI-132]
	_ = x[SPOP_PL-133]
	_ = x[SPOP_VS-134]
	_ = x[SPOP_VC-135]
	_ = x[SPOP_HI-136]
	_ = x[SPOP_LS-137]
	_ = x[SPOP_GE-138]
	_ = x[SPOP_LT-139]
	_ = x[SPOP_GT-140]
	_ = x[SPOP_LE-141]
	_ = x[SPOP_AL-142]
	_ = x[SPOP_NV-143]
	_ = x[SPOP_C-144]
	_ = x[SPOP_J-145]
	_ = x[SPOP_JC-146]
	_ = x[SPOP_PLDKEEP-147]
	_ = x[SPOP_PSTKEEP-148]
	_ = x[SPOP_PLDSTRM-149]
	_ = x[SPOP_PSTSTRM-150]
	_ = x[SPOP_END-151]
}

const _SpecialOperand_name = "PLDL1KEEPPLDL1STRMPLDL2KEEPPLDL2STRMPLDL3KEEPPLDL3STRMPLIL1KEEPPLIL1STRMPLIL2KEEPPLIL2STRMPLIL3KEEPPLIL3STRMPSTL1KEEPPSTL1STRMPSTL2KEEPPSTL2STRMPSTL3KEEPPSTL3STRMVLx2VLx4VMALLE1ISVAE1ISASIDE1ISVAAE1ISVALE1ISVAALE1ISVMALLE1VAE1ASIDE1VAAE1VALE1VAALE1IPAS2E1ISIPAS2LE1ISALLE2ISVAE2ISALLE1ISVALE2ISVMALLS12E1ISIPAS2E1IPAS2LE1ALLE2VAE2ALLE1VALE2VMALLS12E1ALLE3ISVAE3ISVALE3ISALLE3VAE3VALE3VMALLE1OSVAE1OSASIDE1OSVAAE1OSVALE1OSVAALE1OSRVAE1ISRVAAE1ISRVALE1ISRVAALE1ISRVAE1OSRVAAE1OSRVALE1OSRVAALE1OSRVAE1RVAAE1RVALE1RVAALE1RIPAS2E1ISRIPAS2LE1ISALLE2OSVAE2OSALLE1OSVALE2OSVMALLS12E1OSRVAE2ISRVALE2ISIPAS2E1OSRIPAS2E1RIPAS2E1OSIPAS2LE1OSRIPAS2LE1RIPAS2LE1OSRVAE2OSRVALE2OSRVAE2RVALE2ALLE3OSVAE3OSVALE3OSRVAE3ISRVALE3ISRVAE3OSRVALE3OSRVAE3RVALE3IVACISWCSWCISWZVACVACCVAUCIVACIGVACIGSWIGDVACIGDSWCGSWCGDSWCIGSWCIGDSWGVAGZVACGVACCGDVACCGVAPCGDVAPCGVADPCGDVADPCIGVACCIGDVACCVAPCVADPDAIFSetDAIFClrEQNEHSLOMIPLVSVCHILSGELTGTLEALNVCJJCPLDKEEPPSTKEEPPLDSTRMPSTSTRMEND"

var _SpecialOperand_index = [...]uint16{0, 9, 18, 27, 36, 45, 54, 63, 72, 81, 90, 99, 108, 117, 126, 135, 144, 153, 162, 166, 170, 179, 185, 193, 200, 207, 215, 222, 226, 232, 237, 242, 248, 257, 267, 274, 280, 287, 294, 306, 313, 321, 326, 330, 335, 340, 350, 357, 363, 370, 375, 379, 384, 393, 399, 407, 414, 421, 429, 436, 444, 452, 461, 468, 476, 484, 493, 498, 504, 510, 517, 527, 538, 545, 551, 558, 565, 577, 584, 592, 601, 609, 619, 629, 638, 649, 656, 664, 669, 675, 682, 688, 695, 702, 710, 717, 725, 730, 736, 740, 743, 746, 750, 753, 757, 761, 766, 771, 775, 781, 786, 790, 795, 800, 806, 809, 813, 818, 824, 829, 835, 841, 848, 854, 861, 865, 870, 877, 884, 886, 888, 890, 892, 894, 896, 898, 900, 902, 904, 906, 908, 910, 912, 914, 916, 917, 918, 920, 927, 934, 941, 948, 951}

func (i SpecialOperand) String() string {
	idx := int(i) - 0
	if i < 0 || idx >= len(_SpecialOperand_index)-1 {
		return "SpecialOperand(" + strconv.FormatInt(int64(i), 10) + ")"
	}
	return _SpecialOperand_name[_SpecialOperand_index[idx]:_SpecialOperand_index[idx+1]]
}
