úÎX     (Call the CPUID instruction from Haskell.(c) 2017, Anselm Jonas SchollBSD3anselm.scholl@tu-harburg.de experimentalx86SafeX+Result of a call to the XGETBV instruction.$Argument for the XGETBV instruction.*Result of a call to the CPUID instruction.)Value of EAX after the CPUID instruction.)Value of EBX after the CPUID instruction. )Value of ECX after the CPUID instruction. )Value of EDX after the CPUID instruction. #Argument for the CPUID instruction. Value to query for.GAdditional value for queries. You can leave this at 0 most of the time.aTrue if the platform supports the CPUID instruction (that is, if this code runs on x86 or AMD64).PCall the CPUID instruction. If the instruction is not supported, throw an error.A safe version of $ which never throws exceptions if a  is returned.sGet the highest supported function parameter (EAX) for the CPUID instruction. Returns 0 if CPUID is unsupported.ÃReturns true if the platform supports the XGETBV instruction (that is, if the code runs on x86 or AMD64) AND the processor (or operating system) support it (that is, the OSXSAVE bit is set)ÃCall the XGETBV instruction. If the instruction is not supported, throw an error. You also have to check for support of the instruction by the operating system and the processor first (use ).A safe version of $ which never throws exceptions if a  is returned.‡Check whether the processor indicated support for SSE2. Note that this does not mean the OS will save the XMM upon context switches.:Check whether OS and CPU support the AVX2 instruction set.=Check whether OS and CPU support the AVX512f instruction set.  !      !"       !"#'basic-cpuid-0.1.0.0-jL1mO38RQMtbOEZNXS0System.Cpuid.Basic XGetBVResultxgEAXxgEDX XGetBVArg CpuidResultcrEAXcrEBXcrECXcrEDXCpuidArgcaEAXcaECXcpuidSupportedcpuid cpuidMaybecpuidHighestFunctionParameter xgetbvSupportxgetbv xgetbvMaybe supportsSSE2 supportsAVX2supportsAVX512f$fShowCpuidArg $fEqCpuidArg$fShowCpuidResult$fEqCpuidResult$fShowXGetBVResult$fEqXGetBVResultbaseGHC.BaseJust call_xgetbv call_cpuid