https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63334

            Bug ID: 63334
           Summary: -m16 should turn off MMX, SSE, AVX as well as
                    VEX-encoded scalar instructions
           Product: gcc
           Version: 5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: hjl.tools at gmail dot com
                CC: kirill.yukhin at intel dot com
            Target: x86

MMX, SSE, AVX as well as VEX-encoded scalar instructions are supported
in 16-bit mode.  -m16 should turn them off:

[hjl@gnu-6 gcc]$ touch x.i
[hjl@gnu-6 gcc]$ ./xgcc -B./ -m16 x.i -march=native -v -S
Reading specs from ./specs
COLLECT_GCC=./xgcc
Target: x86_64-unknown-linux-gnu
Configured with: /export/gnu/import/git/gcc/configure
--enable-languages=c,c++,fortran --disable-bootstrap --prefix=/usr/gcc-5.0.0
--with-local-prefix=/usr/local --enable-gnu-indirect-function --with-fpmath=sse
Thread model: posix
gcc version 5.0.0 20140911 (experimental) (GCC) 
COLLECT_GCC_OPTIONS='-B' './' '-m16' '-march=native' '-v' '-S'
 ./cc1 -fpreprocessed x.i -march=haswell -mmmx -mno-3dnow -msse -msse2 -msse3
-mssse3 -mno-sse4a -mcx16 -msahf -mmovbe -maes -mno-sha -mpclmul -mpopcnt -mabm
-mno-lwp -mfma -mno-fma4 -mno-xop -mbmi -mbmi2 -mno-tbm -mavx -mavx2 -msse4.2
-msse4.1 -mlzcnt -mno-rtm -mno-hle -mrdrnd -mf16c -mfsgsbase -mno-rdseed
-mno-prfchw -mno-adx -mfxsr -mxsave -mxsaveopt -mno-avx512f -mno-avx512er
-mno-avx512cd -mno-avx512pf -mno-prefetchwt1 -mno-clflushopt -mno-xsavec
-mno-xsaves -mno-avx512dq -mno-avx512bw -mno-avx512vl --param l1-cache-size=32
--param l1-cache-line-size=64 --param l2-cache-size=8192 -mtune=haswell -quiet
-dumpbase x.i -m16 -auxbase x -version -o x.s
GNU C (GCC) version 5.0.0 20140911 (experimental) (x86_64-unknown-linux-gnu)
    compiled by GNU C version 4.8.3 20140624 (Red Hat 4.8.3-1), GMP version
5.1.2, MPFR version 3.1.2, MPC version 1.0.1
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
GNU C (GCC) version 5.0.0 20140911 (experimental) (x86_64-unknown-linux-gnu)
    compiled by GNU C version 4.8.3 20140624 (Red Hat 4.8.3-1), GMP version
5.1.2, MPFR version 3.1.2, MPC version 1.0.1
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
Compiler executable checksum: 86d44baffb9b5e3d04fa82fe0af72a3d
COMPILER_PATH=./
LIBRARY_PATH=./:/lib/../lib64/:/usr/lib/../lib64/:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-B' './' '-m16' '-march=native' '-v' '-S'
[hjl@gnu-6 gcc]$

Reply via email to