diff options
author | Jakub Jelinek <jakub@redhat.com> | 2011-10-13 00:05:00 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2011-10-13 00:05:00 +0200 |
commit | 9d901b0e8fbb741dc6ac72faa4be1a3dc6b9b599 (patch) | |
tree | a9ca0821ee4c01bfd99477dc97af6ebf37f972f1 /gcc/config/i386/i386.c | |
parent | 15bf7d19d4a0dc2eed0ae5dcac5cdb3a35ec7db8 (diff) | |
download | gcc-9d901b0e8fbb741dc6ac72faa4be1a3dc6b9b599.zip gcc-9d901b0e8fbb741dc6ac72faa4be1a3dc6b9b599.tar.gz gcc-9d901b0e8fbb741dc6ac72faa4be1a3dc6b9b599.tar.bz2 |
sse.md (avx2_gathersi<mode>, [...]): Add clobber of match_scratch...
* config/i386/sse.md (avx2_gathersi<mode>,
avx2_gatherdi<mode>, avx2_gatherdi<mode>256): Add clobber of
match_scratch, change memory_operand to register_operand,
add (mem:BLK (scratch)) use.
(*avx2_gathersi<mode>, *avx2_gatherdi<mode>,
*avx2_gatherdi<mode>256): Add clobber of match_scratch,
add earlyclobber to the output operand and match_scratch,
add (mem:BLK (scratch)) use, change the other mem to match_operand.
Use %p6 instead of %c6 in the pattern.
* config/i386/i386.c (ix86_expand_builtin): Adjust for
operand 2 being a Pmode register_operand instead of memory_operand.
From-SVN: r179869
Diffstat (limited to 'gcc/config/i386/i386.c')
-rw-r--r-- | gcc/config/i386/i386.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 625c55e..f73a969 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -28748,7 +28748,6 @@ rdrand_step: op4 = expand_normal (arg4); /* Note the arg order is different from the operand order. */ mode0 = insn_data[icode].operand[1].mode; - mode1 = insn_data[icode].operand[2].mode; mode2 = insn_data[icode].operand[3].mode; mode3 = insn_data[icode].operand[4].mode; mode4 = insn_data[icode].operand[5].mode; @@ -28762,12 +28761,11 @@ rdrand_step: if (GET_MODE (op1) != Pmode) op1 = convert_to_mode (Pmode, op1, 1); op1 = force_reg (Pmode, op1); - op1 = gen_rtx_MEM (mode1, op1); if (!insn_data[icode].operand[1].predicate (op0, mode0)) op0 = copy_to_mode_reg (mode0, op0); - if (!insn_data[icode].operand[2].predicate (op1, mode1)) - op1 = copy_to_mode_reg (mode1, op1); + if (!insn_data[icode].operand[2].predicate (op1, Pmode)) + op1 = copy_to_mode_reg (Pmode, op1); if (!insn_data[icode].operand[3].predicate (op2, mode2)) op2 = copy_to_mode_reg (mode2, op2); if (!insn_data[icode].operand[4].predicate (op3, mode3)) |