This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Implement -Wswitch-fallthrough: i386
- From: Marek Polacek <polacek at redhat dot com>
- To: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Mon, 11 Jul 2016 21:54:19 +0200
- Subject: Re: Implement -Wswitch-fallthrough: i386
- Authentication-results: sourceware.org; auth=none
- References: <20160711194340.GI13963@redhat.com>
2016-07-11 Marek Polacek <polacek@redhat.com>
PR c/7652
* config/i386/driver-i386.c (decode_caches_intel): Likewise.
(detect_caches_cpuid4): Likewise.
* config/i386/i386-c.c (ix86_target_macros_internal): Likewise.
* config/i386/i386.c (function_arg_advance_32): Likewise.
(function_arg_32): Likewise.
(ix86_gimplify_va_arg): Likewise.
(standard_sse_constant_opcode): Likewise.
(ix86_decompose_address): Likewise.
(ix86_legitimate_constant_p): Likewise.
(legitimate_pic_operand_p): Likewise.
(legitimate_pic_address_disp_p): Likewise.
(ix86_legitimate_address_p): Likewise.
(output_pic_addr_const): Likewise.
(print_reg): Likewise.
(ix86_print_operand): Likewise.
(ix86_expand_move): Likewise.
(ix86_build_const_vector): Likewise.
(ix86_match_ccmode): Likewise.
(ix86_expand_branch): Likewise.
(ix86_prepare_sse_fp_compare_args): Likewise.
(ix86_expand_int_sse_cmp): Likewise.
(ix86_adjust_cost): Likewise.
(ix86_sched_init_global): Likewise.
(ix86_expand_multi_arg_builtin): Likewise.
(ix86_expand_args_builtin): Likewise.
(ix86_expand_round_builtin): Likewise.
(ix86_expand_special_args_builtin): Likewise.
(ix86_expand_builtin): Likewise.
(avx_vpermilp_parallel): Likewise.
(ix86_rtx_costs): Likewise.
(ix86_expand_vector_init_duplicate): Likewise.
(ix86_expand_vector_init_one_nonzero): Likewise.
(ix86_expand_vector_init_one_var): Likewise.
(ix86_expand_vector_init_interleave): Likewise.
(ix86_expand_vector_init_general): Likewise.
(ix86_expand_vector_extract): Likewise.
(expand_vec_perm_blend): Likewise.
(canonicalize_perm): Likewise.
(ix86_expand_vecop_qihi): Likewise.
(ix86_preferred_simd_mode): Likewise.
* config/i386/sse.md: Likewise.
diff --git gcc/gcc/config/i386/driver-i386.c gcc/gcc/config/i386/driver-i386.c
index 22a8f28..a84a326 100644
--- gcc/gcc/config/i386/driver-i386.c
+++ gcc/gcc/config/i386/driver-i386.c
@@ -238,6 +238,7 @@ decode_caches_intel (unsigned reg, bool xeon_mp,
break;
case 0x87:
level2->sizekb = 1024; level2->assoc = 8; level2->line = 64;
+ gcc_fallthrough ();
default:
break;
@@ -326,6 +327,7 @@ detect_caches_cpuid4 (struct cache_desc *level1, struct cache_desc *level2,
* cache->line * sets) / 1024;
}
}
+ gcc_fallthrough ();
default:
break;
}
diff --git gcc/gcc/config/i386/i386-c.c gcc/gcc/config/i386/i386-c.c
index f93a09d..8e5087d 100644
--- gcc/gcc/config/i386/i386-c.c
+++ gcc/gcc/config/i386/i386-c.c
@@ -210,6 +210,7 @@ ix86_target_macros_internal (HOST_WIDE_INT isa_flag,
case '3':
def_or_undef (parse_in, "__tune_pentium3__");
/* FALLTHRU */
+ gcc_fallthrough ();
case '2':
def_or_undef (parse_in, "__tune_pentium2__");
break;
diff --git gcc/gcc/config/i386/i386.c gcc/gcc/config/i386/i386.c
index 9eaf414..f7e9845 100644
--- gcc/gcc/config/i386/i386.c
+++ gcc/gcc/config/i386/i386.c
@@ -9284,6 +9284,7 @@ function_arg_advance_32 (CUMULATIVE_ARGS *cum, machine_mode mode,
if (bytes < 0)
break;
/* FALLTHRU */
+ gcc_fallthrough ();
case DImode:
case SImode:
@@ -9312,12 +9313,14 @@ pass_in_reg:
error_p = 1;
if (cum->float_in_sse < 2)
break;
+ gcc_fallthrough ();
case SFmode:
if (cum->float_in_sse == -1)
error_p = 1;
if (cum->float_in_sse < 1)
break;
/* FALLTHRU */
+ gcc_fallthrough ();
case V8SFmode:
case V8SImode:
@@ -9547,6 +9550,7 @@ function_arg_32 (CUMULATIVE_ARGS *cum, machine_mode mode,
if (bytes < 0)
break;
/* FALLTHRU */
+ gcc_fallthrough ();
case DImode:
case SImode:
case HImode:
@@ -9579,12 +9583,14 @@ pass_in_reg:
error_p = 1;
if (cum->float_in_sse < 2)
break;
+ gcc_fallthrough ();
case SFmode:
if (cum->float_in_sse == -1)
error_p = 1;
if (cum->float_in_sse < 1)
break;
/* FALLTHRU */
+ gcc_fallthrough ();
case TImode:
/* In 32bit, we pass TImode in xmm registers. */
case V16QImode:
@@ -10984,6 +10990,7 @@ ix86_gimplify_va_arg (tree valist, tree type, gimple_seq *pre_p,
container = NULL;
break;
}
+ gcc_fallthrough ();
default:
container = construct_container (nat_mode, TYPE_MODE (type),
@@ -11495,6 +11502,7 @@ standard_sse_constant_opcode (rtx_insn *insn, rtx x)
case MODE_V8SF:
gcc_assert (TARGET_AVX2);
/* FALLTHRU */
+ gcc_fallthrough ();
case MODE_TI:
case MODE_V2DF:
case MODE_V4SF:
@@ -14911,6 +14919,7 @@ ix86_decompose_address (rtx addr, struct ix86_address *out)
if (GET_CODE (op) != UNSPEC)
return 0;
/* FALLTHRU */
+ gcc_fallthrough ();
case UNSPEC:
if (XINT (op, 1) == UNSPEC_TP
@@ -14925,6 +14934,7 @@ ix86_decompose_address (rtx addr, struct ix86_address *out)
if (!REG_P (SUBREG_REG (op)))
return 0;
/* FALLTHRU */
+ gcc_fallthrough ();
case REG:
if (!base)
@@ -15186,6 +15196,7 @@ ix86_legitimate_constant_p (machine_mode mode, rtx x)
if (GET_CODE (x) != SYMBOL_REF)
return false;
/* FALLTHRU */
+ gcc_fallthrough ();
case SYMBOL_REF:
/* TLS symbols are never valid. */
@@ -15217,10 +15228,12 @@ ix86_legitimate_constant_p (machine_mode mode, rtx x)
if (TARGET_64BIT)
return true;
/* FALLTHRU */
+ gcc_fallthrough ();
case OImode:
case XImode:
if (!standard_sse_constant_p (x, mode))
return false;
+ gcc_fallthrough ();
default:
break;
}
@@ -15229,6 +15242,7 @@ ix86_legitimate_constant_p (machine_mode mode, rtx x)
case CONST_VECTOR:
if (!standard_sse_constant_p (x, mode))
return false;
+ gcc_fallthrough ();
default:
break;
@@ -15307,6 +15321,7 @@ legitimate_pic_operand_p (rtx x)
return false;
}
/* FALLTHRU */
+ gcc_fallthrough ();
case SYMBOL_REF:
case LABEL_REF:
@@ -15357,6 +15372,7 @@ legitimate_pic_address_disp_p (rtx disp)
if (GET_CODE (op0) != SYMBOL_REF)
break;
/* FALLTHRU */
+ gcc_fallthrough ();
case SYMBOL_REF:
/* TLS references should always be enclosed in UNSPEC.
@@ -15613,6 +15629,7 @@ ix86_legitimate_address_p (machine_mode, rtx addr, bool strict)
&& ix86_force_load_from_GOT_p (XVECEXP (XEXP (disp, 0), 0, 0)))
goto is_legitimate_pic;
/* FALLTHRU */
+ gcc_fallthrough ();
case UNSPEC_GOTOFF:
gcc_assert (flag_pic);
if (!TARGET_64BIT)
@@ -15625,6 +15642,7 @@ ix86_legitimate_address_p (machine_mode, rtx addr, bool strict)
if (ix86_force_load_from_GOT_p (XVECEXP (XEXP (disp, 0), 0, 0)))
goto is_legitimate_pic;
/* FALLTHRU */
+ gcc_fallthrough ();
case UNSPEC_PCREL:
gcc_assert (flag_pic);
goto is_legitimate_pic;
@@ -16679,6 +16697,7 @@ output_pic_addr_const (FILE *file, rtx x, int code)
case LABEL_REF:
x = XEXP (x, 0);
/* FALLTHRU */
+ gcc_fallthrough ();
case CODE_LABEL:
ASM_GENERATE_INTERNAL_LABEL (buf, "L", CODE_LABEL_NUMBER (x));
assemble_name (asm_out_file, buf);
@@ -17292,6 +17311,7 @@ print_reg (rtx x, int code, FILE *file)
case 4:
if (LEGACY_INT_REGNO_P (regno))
putc (msize == 8 && TARGET_64BIT ? 'r' : 'e', file);
+ gcc_fallthrough ();
case 16:
case 12:
case 2:
@@ -17541,6 +17561,7 @@ ix86_print_operand (FILE *file, rtx x, int code)
warning
(0, "non-integer operand used with operand code 'z'");
/* FALLTHRU */
+ gcc_fallthrough ();
case 'Z':
/* 387 opcodes don't get size suffixes if using Intel opcodes. */
@@ -17701,6 +17722,7 @@ ix86_print_operand (FILE *file, rtx x, int code)
fputs ("eq_us", file);
break;
}
+ gcc_fallthrough ();
case EQ:
fputs ("eq", file);
break;
@@ -17710,6 +17732,7 @@ ix86_print_operand (FILE *file, rtx x, int code)
fputs ("nge", file);
break;
}
+ gcc_fallthrough ();
case LT:
fputs ("lt", file);
break;
@@ -17719,6 +17742,7 @@ ix86_print_operand (FILE *file, rtx x, int code)
fputs ("ngt", file);
break;
}
+ gcc_fallthrough ();
case LE:
fputs ("le", file);
break;
@@ -17731,6 +17755,7 @@ ix86_print_operand (FILE *file, rtx x, int code)
fputs ("neq_oq", file);
break;
}
+ gcc_fallthrough ();
case NE:
fputs ("neq", file);
break;
@@ -17740,6 +17765,7 @@ ix86_print_operand (FILE *file, rtx x, int code)
fputs ("ge", file);
break;
}
+ gcc_fallthrough ();
case UNGE:
fputs ("nlt", file);
break;
@@ -17749,6 +17775,7 @@ ix86_print_operand (FILE *file, rtx x, int code)
fputs ("gt", file);
break;
}
+ gcc_fallthrough ();
case UNGT:
fputs ("nle", file);
break;
@@ -19447,6 +19474,7 @@ ix86_expand_move (machine_mode mode, rtx operands[])
op1 = XEXP (tmp, 0);
addend = XEXP (tmp, 1);
/* FALLTHRU */
+ gcc_fallthrough ();
case SYMBOL_REF:
model = SYMBOL_REF_TLS_MODEL (op1);
@@ -19493,6 +19521,7 @@ ix86_expand_move (machine_mode mode, rtx operands[])
return;
op1 = convert_to_mode (mode, op1, 1);
+ gcc_fallthrough ();
default:
break;
@@ -21496,6 +21525,7 @@ ix86_build_const_vector (machine_mode mode, bool vect, rtx value)
case V4DImode:
case V2DImode:
gcc_assert (vect);
+ gcc_fallthrough ();
case V16SFmode:
case V8SFmode:
case V4SFmode:
@@ -21836,14 +21866,17 @@ ix86_match_ccmode (rtx insn, machine_mode req_mode)
if (req_mode == CCGCmode)
return false;
/* FALLTHRU */
+ gcc_fallthrough ();
case CCGCmode:
if (req_mode == CCGOCmode || req_mode == CCNOmode)
return false;
/* FALLTHRU */
+ gcc_fallthrough ();
case CCGOCmode:
if (req_mode == CCZmode)
return false;
/* FALLTHRU */
+ gcc_fallthrough ();
case CCZmode:
break;
@@ -22481,6 +22514,8 @@ ix86_expand_branch (enum rtx_code code, rtx op0, rtx op1, rtx label)
op0 = force_reg (mode, gen_rtx_XOR (mode, op0, op1));
op1 = const0_rtx;
}
+ /* XXX Really fallthru? */
+ gcc_fallthrough ();
case TImode:
/* Expand DImode branch into multiple compare+branch. */
{
@@ -23313,6 +23348,7 @@ ix86_prepare_sse_fp_compare_args (rtx dest, enum rtx_code code,
if (!dest || !rtx_equal_p (dest, *pop1))
break;
/* FALLTHRU */
+ gcc_fallthrough ();
case GE:
case GT:
@@ -23892,6 +23928,7 @@ ix86_expand_int_sse_cmp (rtx dest, enum rtx_code code, rtx cop0, rtx cop1,
code = reverse_condition (code);
*negate = true;
/* FALLTHRU */
+ gcc_fallthrough ();
case LT:
case LTU:
@@ -28915,6 +28952,7 @@ ix86_adjust_cost (rtx_insn *insn, rtx link, rtx_insn *dep_insn, int cost)
&& (dep_insn_type == TYPE_PUSH || dep_insn_type == TYPE_POP))
return 0;
/* FALLTHRU */
+ gcc_fallthrough ();
case PROCESSOR_ATHLON:
case PROCESSOR_K8:
@@ -29003,6 +29041,7 @@ ix86_adjust_cost (rtx_insn *insn, rtx link, rtx_insn *dep_insn, int cost)
}
}
}
+ gcc_fallthrough ();
default:
break;
@@ -29842,6 +29881,7 @@ ix86_sched_init_global (FILE *, int, int)
break;
}
/* ... Fall through ... */
+ gcc_fallthrough ();
default:
targetm.sched.dfa_post_advance_cycle = NULL;
targetm.sched.first_cycle_multipass_init = NULL;
@@ -38725,6 +38765,7 @@ ix86_expand_multi_arg_builtin (enum insn_code icode, tree exp, rtx target,
goto xop_rotl;
case CODE_FOR_xop_rotlv16qi3:
new_icode = CODE_FOR_rotlv16qi3;
+ gcc_fallthrough ();
xop_rotl:
if (CONST_INT_P (op))
{
@@ -40112,6 +40153,7 @@ ix86_expand_args_builtin (const struct builtin_description *d,
error ("the next to last argument must be an 8-bit immediate");
break;
}
+ gcc_fallthrough ();
case 1:
error ("the last argument must be an 8-bit immediate");
break;
@@ -40168,6 +40210,8 @@ ix86_expand_args_builtin (const struct builtin_description *d,
case 5:
pat = GEN_FCN (icode) (real_target, args[0].op, args[1].op,
args[2].op, args[3].op, args[4].op);
+ /* XXX Really fallthru? */
+ gcc_fallthrough ();
case 6:
pat = GEN_FCN (icode) (real_target, args[0].op, args[1].op,
args[2].op, args[3].op, args[4].op,
@@ -40542,6 +40586,8 @@ ix86_expand_round_builtin (const struct builtin_description *d,
case 5:
pat = GEN_FCN (icode) (target, args[0].op, args[1].op,
args[2].op, args[3].op, args[4].op);
+ /* XXX Really fallthru? */
+ gcc_fallthrough ();
case 6:
pat = GEN_FCN (icode) (target, args[0].op, args[1].op,
args[2].op, args[3].op, args[4].op,
@@ -40725,6 +40771,7 @@ ix86_expand_special_args_builtin (const struct builtin_description *d,
break;
}
/* FALLTHRU */
+ gcc_fallthrough ();
case VOID_FTYPE_PV8SF_V8SI_V8SF:
case VOID_FTYPE_PV4DF_V4DI_V4DF:
case VOID_FTYPE_PV4SF_V4SI_V4SF:
@@ -41973,6 +42020,7 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget,
case IX86_BUILTIN_RDRAND64_STEP:
icode = CODE_FOR_rdranddi_1;
mode0 = DImode;
+ gcc_fallthrough ();
rdrand_step:
op0 = gen_reg_rtx (mode0);
@@ -42024,6 +42072,7 @@ rdrand_step:
case IX86_BUILTIN_RDSEED64_STEP:
icode = CODE_FOR_rdseeddi_1;
mode0 = DImode;
+ gcc_fallthrough ();
rdseed_step:
op0 = gen_reg_rtx (mode0);
@@ -42069,6 +42118,7 @@ rdseed_step:
case IX86_BUILTIN_ADDCARRYX64:
icode = CODE_FOR_addcarrydi;
mode0 = DImode;
+ gcc_fallthrough ();
handlecarry:
arg0 = CALL_EXPR_ARG (exp, 0); /* unsigned char c_in. */
@@ -42149,6 +42199,7 @@ rdseed_step:
icode = CODE_FOR_kortestzhi;
mode0 = HImode;
mode1 = CCZmode;
+ gcc_fallthrough ();
kortest:
arg0 = CALL_EXPR_ARG (exp, 0); /* Mask reg src1. */
@@ -42612,6 +42663,7 @@ rdseed_step:
if (!integer_zerop (gimple_call_arg (def_stmt, 2)))
break;
/* FALLTHRU */
+ gcc_fallthrough ();
case IX86_BUILTIN_CMPEQPD:
case IX86_BUILTIN_CMPEQPS:
if (initializer_zerop (gimple_call_arg (def_stmt, 0))
@@ -42841,6 +42893,7 @@ rdseed_step:
if (!TARGET_SSE)
/* Emit a normal call if SSE isn't available. */
return expand_call (exp, target, ignore);
+ gcc_fallthrough ();
default:
return ix86_expand_args_builtin (d, exp, target);
}
@@ -43772,6 +43825,7 @@ avx_vpermilp_parallel (rtx par, machine_mode mode)
mask |= (ipar[i] - 6) << i;
}
/* FALLTHRU */
+ gcc_fallthrough ();
case V4DFmode:
/* In the 256-bit DFmode case, we can only move elements within
@@ -43797,6 +43851,7 @@ avx_vpermilp_parallel (rtx par, machine_mode mode)
if (ipar[i] + 8 != ipar[i + 8])
return 0;
/* FALLTHRU */
+ gcc_fallthrough ();
case V8SFmode:
/* In 256 bit SFmode case, we have full freedom of
@@ -43807,6 +43862,7 @@ avx_vpermilp_parallel (rtx par, machine_mode mode)
return 0;
nelt = 4;
/* FALLTHRU */
+ gcc_fallthrough ();
case V2DFmode:
case V4SFmode:
@@ -44714,6 +44770,7 @@ ix86_rtx_costs (rtx x, machine_mode mode, int outer_code_i, int opno,
return true;
}
/* FALLTHRU */
+ gcc_fallthrough ();
case CONST_VECTOR:
switch (standard_sse_constant_p (x, mode))
@@ -44728,6 +44785,7 @@ ix86_rtx_costs (rtx x, machine_mode mode, int outer_code_i, int opno,
return true;
}
/* FALLTHRU */
+ gcc_fallthrough ();
case CONST_WIDE_INT:
/* Fall back to (MEM (SYMBOL_REF)), since that's where
@@ -44773,6 +44831,7 @@ ix86_rtx_costs (rtx x, machine_mode mode, int outer_code_i, int opno,
}
}
/* FALLTHRU */
+ gcc_fallthrough ();
case ROTATE:
case ASHIFTRT:
@@ -45024,6 +45083,7 @@ ix86_rtx_costs (rtx x, machine_mode mode, int outer_code_i, int opno,
}
}
/* FALLTHRU */
+ gcc_fallthrough ();
case MINUS:
if (SSE_FLOAT_MODE_P (mode) && TARGET_SSE_MATH)
@@ -45044,6 +45104,7 @@ ix86_rtx_costs (rtx x, machine_mode mode, int outer_code_i, int opno,
return false;
}
/* FALLTHRU */
+ gcc_fallthrough ();
case AND:
case IOR:
@@ -45059,6 +45120,7 @@ ix86_rtx_costs (rtx x, machine_mode mode, int outer_code_i, int opno,
return true;
}
/* FALLTHRU */
+ gcc_fallthrough ();
case NEG:
if (SSE_FLOAT_MODE_P (mode) && TARGET_SSE_MATH)
@@ -45079,6 +45141,7 @@ ix86_rtx_costs (rtx x, machine_mode mode, int outer_code_i, int opno,
return false;
}
/* FALLTHRU */
+ gcc_fallthrough ();
case NOT:
if (GET_MODE_CLASS (mode) == MODE_VECTOR_INT)
@@ -46669,6 +46732,7 @@ ix86_expand_vector_init_duplicate (bool mmx_ok, machine_mode mode,
if (!mmx_ok)
return false;
/* FALLTHRU */
+ gcc_fallthrough ();
case V4DFmode:
case V4DImode:
@@ -46871,6 +46935,7 @@ ix86_expand_vector_init_one_nonzero (bool mmx_ok, machine_mode mode,
if (!mmx_ok)
return false;
/* FALLTHRU */
+ gcc_fallthrough ();
case V2DFmode:
case V2DImode:
@@ -46994,6 +47059,7 @@ ix86_expand_vector_init_one_var (bool mmx_ok, machine_mode mode,
/* Use ix86_expand_vector_set in 64bit mode only. */
if (!TARGET_64BIT)
return false;
+ gcc_fallthrough ();
case V4DFmode:
case V8SFmode:
case V8SImode:
@@ -47336,6 +47402,7 @@ ix86_expand_vector_init_interleave (machine_mode mode,
second_imode = V2DImode;
gen_interleave_second_low = gen_vec_interleave_lowv2di;
/* FALLTHRU */
+ gcc_fallthrough ();
case V2DImode:
op0 = gen_reg_rtx (second_imode);
@@ -47371,6 +47438,7 @@ ix86_expand_vector_init_general (bool mmx_ok, machine_mode mode,
if (!mmx_ok && !TARGET_SSE)
break;
/* FALLTHRU */
+ gcc_fallthrough ();
case V16SImode:
case V16SFmode:
@@ -47448,6 +47516,7 @@ quarter:
if (!TARGET_SSE4_1)
break;
/* FALLTHRU */
+ gcc_fallthrough ();
case V8HImode:
if (!TARGET_SSE2)
@@ -47928,6 +47997,7 @@ ix86_expand_vector_extract (bool mmx_ok, rtx target, rtx vec, int elt)
if (!mmx_ok)
break;
/* FALLTHRU */
+ gcc_fallthrough ();
case V2DFmode:
case V2DImode:
@@ -50006,6 +50076,7 @@ expand_vec_perm_blend (struct expand_vec_perm_d *d)
mask |= (d->perm[i * 2] >= 16) << i;
vmode = V8HImode;
/* FALLTHRU */
+ gcc_fallthrough ();
do_subreg:
target = gen_reg_rtx (vmode);
@@ -52656,6 +52727,7 @@ canonicalize_perm (struct expand_vec_perm_d *d)
of the permutation by folding the permutation into the single
input vector. */
/* FALLTHRU */
+ gcc_fallthrough ();
case 2:
for (i = 0; i < nelt; ++i)
@@ -52945,6 +53017,7 @@ ix86_expand_vecop_qihi (enum rtx_code code, rtx dest, rtx op1, rtx op2)
case LSHIFTRT:
uns_p = true;
/* FALLTHRU */
+ gcc_fallthrough ();
case ASHIFTRT:
op1_l = gen_reg_rtx (himode);
op1_h = gen_reg_rtx (himode);
@@ -54627,6 +54700,7 @@ ix86_preferred_simd_mode (machine_mode mode)
else if (TARGET_SSE2)
return V2DFmode;
/* FALLTHRU */
+ gcc_fallthrough ();
default:
return word_mode;
diff --git gcc/gcc/config/i386/sse.md gcc/gcc/config/i386/sse.md
index c1ea04f..6b500bc 100644
--- gcc/gcc/config/i386/sse.md
+++ gcc/gcc/config/i386/sse.md
@@ -3185,6 +3185,7 @@
break;
}
/* FALLTHRU */
+ gcc_fallthrough ();
case 1:
ops = "v<logic>%s\t{%%2, %%1, %%0|%%0, %%1, %%2}";
break;
@@ -12221,6 +12222,7 @@
if (GET_MODE_SIZE (<ssescalarmode>mode) < GET_MODE_SIZE (SImode))
return "pinsr<ssemodesuffix>\t{%3, %k2, %0|%0, %k2, %3}";
/* FALLTHRU */
+ gcc_fallthrough ();
case 1:
return "pinsr<ssemodesuffix>\t{%3, %2, %0|%0, %2, %3}";
case 2:
@@ -12228,6 +12230,7 @@
if (GET_MODE_SIZE (<ssescalarmode>mode) < GET_MODE_SIZE (SImode))
return "vpinsr<ssemodesuffix>\t{%3, %k2, %1, %0|%0, %1, %k2, %3}";
/* FALLTHRU */
+ gcc_fallthrough ();
case 3:
case 5:
return "vpinsr<ssemodesuffix>\t{%3, %2, %1, %0|%0, %1, %2, %3}";
@@ -13481,6 +13484,7 @@
}
operands[1] = tmp;
/* FALLTHRU */
+ gcc_fallthrough ();
case 32:
tmp = gen_reg_rtx (<ssevecmode>mode);
if (<MODE>mode == SImode)