module LLVM.Extra.ExtensionCheck.X86 ( sse1, sse2, sse3, ssse3, sse41, sse42, avx, avx2, fma3, fma4, amd3dnow, amd3dnowa, aes, ) where import qualified LLVM.Extra.Extension as Ext subtarget :: String -> Bool -> Ext.Subtarget subtarget name q = Ext.Subtarget "x86" name (return q) -- * target specific extensions sse1 :: Ext.Subtarget sse1 = subtarget "sse" False sse2 :: Ext.Subtarget sse2 = subtarget "sse2" False sse3 :: Ext.Subtarget sse3 = subtarget "sse3" False ssse3 :: Ext.Subtarget ssse3 = subtarget "ssse3" False sse41 :: Ext.Subtarget sse41 = subtarget "sse41" False sse42 :: Ext.Subtarget sse42 = subtarget "sse42" False avx :: Ext.Subtarget avx = subtarget "avx" False avx2 :: Ext.Subtarget avx2 = subtarget "avx2" False fma3 :: Ext.Subtarget fma3 = subtarget "fma3" False fma4 :: Ext.Subtarget fma4 = subtarget "fma4" False amd3dnow :: Ext.Subtarget amd3dnow = subtarget "3dnow" False amd3dnowa :: Ext.Subtarget amd3dnowa = subtarget "3dnowa" False aes :: Ext.Subtarget aes = subtarget "aesni" False