https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104853
--- Comment #15 from rvalue <i at rvalue dot moe> --- Hi, Kito: I've tried these patches and found that it doesn't work with isa-spec 20190608/20191213. Release 11.2.0 with following patches applied: 9871d39f752b, f41871dfdbd9, f049717d8d50, 330aff0a9f7b, fa21fcfb6758 Verbose output: $ cat > test.c int main(){ asm volatile("fence.i" ::: "memory"); } $ gcc test.c -o test -v -march=rv64gc -misa-spec=20191213 Using built-in specs. COLLECT_GCC=/usr/sbin/gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/riscv64-unknown-linux-gnu/11.2.0/lto-wrapper Target: riscv64-unknown-linux-gnu Configured with: /build/gcc/src/gcc/configure --enable-languages=c,c++,fortran,go,lto,objc,obj-c++,d --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-cet=auto --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-linker-build-id --enable-lto --disable-multilib --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-werror --enable-link-serialization=1 gdc_include_dir=/usr/include/dlang/gdc Thread model: posix Supported LTO compression algorithms: zlib zstd gcc version 11.2.0 (GCC) COLLECT_GCC_OPTIONS='-o' 'test' '-v' '-march=rv64gc' '-misa-spec=20191213' '-mabi=lp64d' '-march=rv64imafdc' /usr/lib/gcc/riscv64-unknown-linux-gnu/11.2.0/cc1 -quiet -v test.c -quiet -dumpbase test.c -dumpbase-ext .c -march=rv64gc -misa-spec=20191213 -mabi=lp64d -march=rv64imafdc -version -o /tmp/ccQTUxnc.s GNU C17 (GCC) version 11.2.0 (riscv64-unknown-linux-gnu) compiled by GNU C version 11.2.0, GMP version 6.2.1, MPFR version 4.1.0-p13, MPC version 1.2.1, isl version isl-0.24-GMP GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 ignoring nonexistent directory "/usr/lib/gcc/riscv64-unknown-linux-gnu/11.2.0/../../../../riscv64-unknown-linux-gnu/include" #include "..." search starts here: #include <...> search starts here: /usr/lib/gcc/riscv64-unknown-linux-gnu/11.2.0/include /usr/local/include /usr/lib/gcc/riscv64-unknown-linux-gnu/11.2.0/include-fixed /usr/include End of search list. GNU C17 (GCC) version 11.2.0 (riscv64-unknown-linux-gnu) compiled by GNU C version 11.2.0, GMP version 6.2.1, MPFR version 4.1.0-p13, MPC version 1.2.1, isl version isl-0.24-GMP GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 Compiler executable checksum: 7a7a4553dc5ab0b4f8fc26761070a0ed COLLECT_GCC_OPTIONS='-o' 'test' '-v' '-march=rv64gc' '-misa-spec=20191213' '-mabi=lp64d' '-march=rv64imafdc' as -v --traditional-format -fpic -march=rv64gc -march=rv64imafdc -mabi=lp64d -misa-spec=20191213 -o /tmp/cc2my6Or.o /tmp/ccQTUxnc.s GNU assembler version 2.38 (riscv64-unknown-linux-gnu) using BFD version (GNU Binutils) 2.38 test.c: Assembler messages: test.c:2: Error: unrecognized opcode `fence.i'