diff --git a/gcc/config/i386/i386-protos.h b/gcc/config/i386/i386-protos.h index e547ee64587bd53b0407de9fb032c9e1fd842856..fc2f1f13b78fd98709514d62ee3b9a3449e8f65c 100644 --- a/gcc/config/i386/i386-protos.h +++ b/gcc/config/i386/i386-protos.h @@ -70,7 +70,7 @@ extern machine_mode ix86_cc_mode (enum rtx_code, rtx, rtx); extern int avx_vpermilp_parallel (rtx par, machine_mode mode); extern int avx_vperm2f128_parallel (rtx par, machine_mode mode); -extern int vpternlog_redundant_operand_mask (rtx[]); +extern int vpternlog_redundant_operand_mask (rtx); extern void substitute_vpternlog_operands (rtx[]); extern bool ix86_expand_strlen (rtx, rtx, rtx, rtx); diff --git a/gcc/config/i386/i386.cc b/gcc/config/i386/i386.cc index 8cd26eb54fac7a4b5258a0f4b18ab5b4e7043772..50860050049f372713010f1334b8e6e1abe31347 100644 --- a/gcc/config/i386/i386.cc +++ b/gcc/config/i386/i386.cc @@ -19454,10 +19454,10 @@ avx_vperm2f128_parallel (rtx par, machine_mode mode) /* Return a mask of VPTERNLOG operands that do not affect output. */ int -vpternlog_redundant_operand_mask (rtx *operands) +vpternlog_redundant_operand_mask (rtx pternlog_imm) { int mask = 0; - int imm8 = XINT (operands[4], 0); + int imm8 = INTVAL (pternlog_imm); if (((imm8 >> 4) & 0x0F) == (imm8 & 0x0F)) mask |= 1; @@ -19475,7 +19475,7 @@ vpternlog_redundant_operand_mask (rtx *operands) void substitute_vpternlog_operands (rtx *operands) { - int mask = vpternlog_redundant_operand_mask (operands); + int mask = vpternlog_redundant_operand_mask (operands[4]); if (mask & 1) /* The first operand is redundant. */ operands[1] = operands[2]; diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md index 48378beb7a8237384b0450e25d1db00bf312aad5..2c698af46642f1b3a58f8a9901446b3ceca88147 100644 --- a/gcc/config/i386/sse.md +++ b/gcc/config/i386/sse.md @@ -12751,7 +12751,7 @@ (match_operand:V 3 "memory_operand") (match_operand:SI 4 "const_0_to_255_operand")] UNSPEC_VTERNLOG))] - "!reload_completed && vpternlog_redundant_operand_mask (operands) == 3" + "!reload_completed && vpternlog_redundant_operand_mask (operands[4]) == 3" [(set (match_dup 0) (match_dup 3)) (set (match_dup 0) @@ -12772,7 +12772,7 @@ (match_operand:V 3 "nonimmediate_operand") (match_operand:SI 4 "const_0_to_255_operand")] UNSPEC_VTERNLOG))] - "!reload_completed && vpternlog_redundant_operand_mask (operands) != 0" + "!reload_completed && vpternlog_redundant_operand_mask (operands[4]) != 0" [(set (match_dup 0) (unspec:V [(match_dup 1)