-- | Generating C symbol names emitted by the compiler.moduleCPrim(atomicReadLabel ,atomicWriteLabel ,atomicRMWLabel ,cmpxchgLabel ,popCntLabel ,pdepLabel ,pextLabel ,bSwapLabel ,bRevLabel ,clzLabel ,ctzLabel ,word2FloatLabel )whereimportGhcPreludeimportCmmTypeimportCmmMachOp importOutputablepopCntLabel::Width->StringpopCntLabel w ="hs_popcnt"++pprWidth w wherepprWidth W8="8"pprWidthW16="16"pprWidthW32="32"pprWidthW64="64"pprWidthw =pprPanic"popCntLabel: Unsupported word width "(pprw )pdepLabel::Width->StringpdepLabel w ="hs_pdep"++pprWidth w wherepprWidth W8="8"pprWidthW16="16"pprWidthW32="32"pprWidthW64="64"pprWidthw =pprPanic"pdepLabel: Unsupported word width "(pprw )pextLabel::Width->StringpextLabel w ="hs_pext"++pprWidth w wherepprWidth W8="8"pprWidthW16="16"pprWidthW32="32"pprWidthW64="64"pprWidthw =pprPanic"pextLabel: Unsupported word width "(pprw )bSwapLabel::Width->StringbSwapLabel w ="hs_bswap"++pprWidth w wherepprWidth W16="16"pprWidthW32="32"pprWidthW64="64"pprWidthw =pprPanic"bSwapLabel: Unsupported word width "(pprw )bRevLabel::Width->StringbRevLabel w ="hs_bitrev"++pprWidth w wherepprWidth W8="8"pprWidthW16="16"pprWidthW32="32"pprWidthW64="64"pprWidthw =pprPanic"bRevLabel: Unsupported word width "(pprw )clzLabel::Width->StringclzLabel w ="hs_clz"++pprWidth w wherepprWidth W8="8"pprWidthW16="16"pprWidthW32="32"pprWidthW64="64"pprWidthw =pprPanic"clzLabel: Unsupported word width "(pprw )ctzLabel::Width->StringctzLabel w ="hs_ctz"++pprWidth w wherepprWidth W8="8"pprWidthW16="16"pprWidthW32="32"pprWidthW64="64"pprWidthw =pprPanic"ctzLabel: Unsupported word width "(pprw )word2FloatLabel::Width->Stringword2FloatLabel w ="hs_word2float"++pprWidth w wherepprWidth W32="32"pprWidthW64="64"pprWidthw =pprPanic"word2FloatLabel: Unsupported word width "(pprw )atomicRMWLabel::Width->AtomicMachOp ->StringatomicRMWLabel w amop ="hs_atomic_"++pprFunName amop ++pprWidth w wherepprWidth W8="8"pprWidthW16="16"pprWidthW32="32"pprWidthW64="64"pprWidthw =pprPanic"atomicRMWLabel: Unsupported word width "(pprw )pprFunName AMO_Add ="add"pprFunNameAMO_Sub ="sub"pprFunNameAMO_And ="and"pprFunNameAMO_Nand ="nand"pprFunNameAMO_Or ="or"pprFunNameAMO_Xor ="xor"cmpxchgLabel::Width->StringcmpxchgLabel w ="hs_cmpxchg"++pprWidth w wherepprWidth W8="8"pprWidthW16="16"pprWidthW32="32"pprWidthW64="64"pprWidthw =pprPanic"cmpxchgLabel: Unsupported word width "(pprw )atomicReadLabel::Width->StringatomicReadLabel w ="hs_atomicread"++pprWidth w wherepprWidth W8="8"pprWidthW16="16"pprWidthW32="32"pprWidthW64="64"pprWidthw =pprPanic"atomicReadLabel: Unsupported word width "(pprw )atomicWriteLabel::Width->StringatomicWriteLabel w ="hs_atomicwrite"++pprWidth w wherepprWidth W8="8"pprWidthW16="16"pprWidthW32="32"pprWidthW64="64"pprWidthw =pprPanic"atomicWriteLabel: Unsupported word width "(pprw )