https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117547
--- Comment #6 from H.J. Lu <hjl.tools at gmail dot com> --- We have [hjl@gnu-tgl-3 pr117547]$ cat x.c #include <x86intrin.h> __mmask64 foo (__mmask64 d) { d = __builtin_ia32_kshiftridi (d, 0xff); return d; } [hjl@gnu-tgl-3 pr117547]$ make /export/build/gnu/tools-build/gcc-gitlab-test-debug/build-x86_64-linux/gcc/xgcc -B/export/build/gnu/tools-build/gcc-gitlab-test-debug/build-x86_64-linux/gcc/ -O2 -mavx512bw -Wall -S x.c x.c: In function ‘foo’: x.c:6:7: error: the last argument must be an 8-bit immediate 6 | d = __builtin_ia32_kshiftridi (d, 0xff); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ make: *** [Makefile:31: x.s] Error 1 [hjl@gnu-tgl-3 pr117547]$ (gdb) bt #0 trunc_int_for_mode (x=..., mode=E_QImode) at /export/gnu/import/git/gitlab/x86-gcc-test/gcc/explow.cc:85 #1 0x00000000007d3521 in gen_int_mode (c=..., mode=E_QImode) at /export/gnu/import/git/gitlab/x86-gcc-test/gcc/emit-rtl.cc:546 #2 0x00000000007d381e in immed_wide_int_const_1 (v=..., mode=E_QImode) at /export/gnu/import/git/gitlab/x86-gcc-test/gcc/emit-rtl.cc:666 #3 0x00000000007d391f in immed_wide_int_const (c=..., mode=E_QImode) at /export/gnu/import/git/gitlab/x86-gcc-test/gcc/emit-rtl.cc:748 #4 0x00000000008484d3 in expand_expr_real_1 (exp=0x7fffe9824030, target=0x0, tmode=E_VOIDmode, modifier=EXPAND_NORMAL, alt_rtl=0x0, inner_reference_p=false) at /export/gnu/import/git/gitlab/x86-gcc-test/gcc/expr.cc:11619 #5 0x000000000083ec73 in expand_expr_real (exp=0x7fffe9824030, target=0x0, tmode=E_VOIDmode, modifier=EXPAND_NORMAL, alt_rtl=0x0, inner_reference_p=false) at /export/gnu/import/git/gitlab/x86-gcc-test/gcc/expr.cc:9538 #6 0x0000000000664eca in expand_normal (exp=0x7fffe9824030) at /export/gnu/import/git/gitlab/x86-gcc-test/gcc/expr.h:329 #7 0x00000000014d4ec9 in ix86_expand_args_builtin ( d=0x3adf3f0 <bdesc_args+44688>, exp=0x7fffe46e7300, target=0x7fffe4c14510) at /export/gnu/import/git/gitlab/x86-gcc-test/gcc/config/i386/i386-expand.cc:12151 #8 0x00000000014e2f78 in ix86_expand_builtin (exp=0x7fffe46e7300, --Type <RET> for more, q to quit, c to continue without paging-- target=0x7fffe4c14348, subtarget=0x0, mode=E_DImode, ignore=0) at /export/gnu/import/git/gitlab/x86-gcc-test/gcc/config/i386/i386-expand.cc:15936 #9 0x000000000065157c in expand_builtin (exp=0x7fffe46e7300, target=0x7fffe4c14348, subtarget=0x0, mode=E_DImode, ignore=0) at /export/gnu/import/git/gitlab/x86-gcc-test/gcc/builtins.cc:7834 #10 0x000000000084cea7 in expand_expr_real_1 (exp=0x7fffe46e7300, target=0x7fffe4c14348, tmode=E_DImode, modifier=EXPAND_NORMAL, alt_rtl=0x7fffffffc6b8, inner_reference_p=false) at /export/gnu/import/git/gitlab/x86-gcc-test/gcc/expr.cc:12499 #11 0x000000000083ec73 in expand_expr_real (exp=0x7fffe46e7300, target=0x7fffe4c14348, tmode=E_DImode, modifier=EXPAND_NORMAL, alt_rtl=0x7fffffffc6b8, inner_reference_p=false) at /export/gnu/import/git/gitlab/x86-gcc-test/gcc/expr.cc:9538 #12 0x00000000008338aa in store_expr (exp=0x7fffe46e7300, target=0x7fffe4c14348, call_param_p=0, nontemporal=false, reverse=false) at /export/gnu/import/git/gitlab/x86-gcc-test/gcc/expr.cc:6771 #13 0x0000000000831dee in expand_assignment (to=0x7fffe46a3480, from=0x7fffe46e7300, nontemporal=false) at /export/gnu/import/git/gitlab/x86-gcc-test/gcc/expr.cc:6492 #14 0x0000000000694571 in expand_call_stmt (stmt=0x7fffe4c3d260) at /export/gnu/import/git/gitlab/x86-gcc-test/gcc/cfgexpand.cc:3142 #15 0x000000000069804e in expand_gimple_stmt_1 (stmt=0x7fffe4c3d260) --Type <RET> for more, q to quit, c to continue without paging-- at /export/gnu/import/git/gitlab/x86-gcc-test/gcc/cfgexpand.cc:4217 #16 0x000000000069861c in expand_gimple_stmt (stmt=0x7fffe4c3d260) at /export/gnu/import/git/gitlab/x86-gcc-test/gcc/cfgexpand.cc:4364 #17 0x0000000000698707 in expand_gimple_tailcall (bb=0x7fffe4631de0, stmt=0x7fffe4c3d260, can_fallthru=0x7fffffffd00f) at /export/gnu/import/git/gitlab/x86-gcc-test/gcc/cfgexpand.cc:4410 #18 0x00000000006a0999 in expand_gimple_basic_block (bb=0x7fffe4631de0, disable_tail_calls=false) at /export/gnu/import/git/gitlab/x86-gcc-test/gcc/cfgexpand.cc:6401 #19 0x00000000006a2f8f in (anonymous namespace)::pass_expand::execute ( this=0x4702050, fun=0x7fffe46dbb60) at /export/gnu/import/git/gitlab/x86-gcc-test/gcc/cfgexpand.cc:7176 #20 0x0000000000c739f2 in execute_one_pass (pass=0x4702050) at /export/gnu/import/git/gitlab/x86-gcc-test/gcc/passes.cc:2659 #21 0x0000000000c73da5 in execute_pass_list_1 (pass=0x4702050) at /export/gnu/import/git/gitlab/x86-gcc-test/gcc/passes.cc:2768 #22 0x0000000000c73e2c in execute_pass_list (fn=0x7fffe46dbb60, pass=0x46fd5e0) at /export/gnu/import/git/gitlab/x86-gcc-test/gcc/passes.cc:2779 #23 0x00000000007003ca in cgraph_node::expand (this=0x7fffe46e5220) at /export/gnu/import/git/gitlab/x86-gcc-test/gcc/cgraphunit.cc:1859 #24 0x0000000000700be0 in expand_all_functions () at /export/gnu/import/git/gitlab/x86-gcc-test/gcc/cgraphunit.cc:2042 #25 0x00000000007016e4 in symbol_table::compile (this=0x7fffe9806000) --Type <RET> for more, q to quit, c to continue without paging-- at /export/gnu/import/git/gitlab/x86-gcc-test/gcc/cgraphunit.cc:2418 #26 0x0000000000701b61 in symbol_table::finalize_compilation_unit ( this=0x7fffe9806000) at /export/gnu/import/git/gitlab/x86-gcc-test/gcc/cgraphunit.cc:2607 #27 0x0000000000df4a74 in compile_file () at /export/gnu/import/git/gitlab/x86-gcc-test/gcc/toplev.cc:478 #28 0x0000000000df7db3 in do_compile () at /export/gnu/import/git/gitlab/x86-gcc-test/gcc/toplev.cc:2207 #29 0x0000000000df8206 in toplev::main (this=0x7fffffffd67a, argc=21, argv=0x7fffffffd7b8) at /export/gnu/import/git/gitlab/x86-gcc-test/gcc/toplev.cc:2370 #30 0x0000000002c12160 in main (argc=21, argv=0x7fffffffd7b8) at /export/gnu/import/git/gitlab/x86-gcc-test/gcc/main.cc:39 (gdb) f 4 #4 0x00000000008484d3 in expand_expr_real_1 (exp=0x7fffe9824030, target=0x0, tmode=E_VOIDmode, modifier=EXPAND_NORMAL, alt_rtl=0x0, inner_reference_p=false) at /export/gnu/import/git/gitlab/x86-gcc-test/gcc/expr.cc:11619 11619 (wi::to_wide (exp, GET_MODE_PRECISION (int_mode)), int_mode); (gdb) call debug_tree (exp) <integer_cst 0x7fffe9824030 type <integer_type 0x7fffe9822348 unsigned char> constant 255> (gdb)