diff options
author | Geoffrey Mainland <gmainlan@microsoft.com> | 2013-09-15 16:24:04 -0400 |
---|---|---|
committer | Geoffrey Mainland <gmainlan@microsoft.com> | 2013-09-22 22:34:00 -0400 |
commit | 03e33c92f4f3b95bad4efa3c9754a681de43610b (patch) | |
tree | e856b965c63ad1ab96e45bb8d23446521fb2c23a /compiler/main/DriverPipeline.hs | |
parent | 76248150c9c34b72440832c15d294bac7405cfc7 (diff) | |
download | haskell-03e33c92f4f3b95bad4efa3c9754a681de43610b.tar.gz |
Add support for -mavx512* flags.
Diffstat (limited to 'compiler/main/DriverPipeline.hs')
-rw-r--r-- | compiler/main/DriverPipeline.hs | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/compiler/main/DriverPipeline.hs b/compiler/main/DriverPipeline.hs index 76f6186443..63f203aaf5 100644 --- a/compiler/main/DriverPipeline.hs +++ b/compiler/main/DriverPipeline.hs @@ -1382,6 +1382,7 @@ runPhase (RealPhase LlvmLlc) input_fn dflags ++ map SysTools.Option abiOpts ++ map SysTools.Option sseOpts ++ map SysTools.Option avxOpts + ++ map SysTools.Option avx512Opts ++ map SysTools.Option stackAlignOpts) return (RealPhase next_phase, output_fn) @@ -1415,9 +1416,15 @@ runPhase (RealPhase LlvmLlc) input_fn dflags | isSse2Enabled dflags = ["-mattr=+sse2"] | otherwise = [] - avxOpts | isAvx2Enabled dflags = ["-mattr=+avx2"] - | isAvxEnabled dflags = ["-mattr=+avx"] - | otherwise = [] + avxOpts | isAvx512fEnabled dflags = ["-mattr=+avx512f"] + | isAvx2Enabled dflags = ["-mattr=+avx2"] + | isAvxEnabled dflags = ["-mattr=+avx"] + | otherwise = [] + + avx512Opts = + [ "-mattr=+avx512cd" | isAvx512cdEnabled dflags ] ++ + [ "-mattr=+avx512er" | isAvx512erEnabled dflags ] ++ + [ "-mattr=+avx512pf" | isAvx512pfEnabled dflags ] stackAlignOpts = case platformArch (targetPlatform dflags) of @@ -2035,7 +2042,11 @@ doCpp dflags raw input_fn output_fn = do let avx_defs = [ "-D__AVX__=1" | isAvxEnabled dflags ] ++ - [ "-D__AVX2__=1" | isAvx2Enabled dflags ] + [ "-D__AVX2__=1" | isAvx2Enabled dflags ] ++ + [ "-D__AVX512CD__=1" | isAvx512cdEnabled dflags ] ++ + [ "-D__AVX512ER__=1" | isAvx512erEnabled dflags ] ++ + [ "-D__AVX512F__=1" | isAvx512fEnabled dflags ] ++ + [ "-D__AVX512PF__=1" | isAvx512pfEnabled dflags ] backend_defs <- getBackendDefs dflags |