Executing on host: /home/dave/gnu/gcc-4.3/objdir/gcc/xgcc
-B/home/dave/gnu/gcc-4
.3/objdir/gcc/
/home/dave/gnu/gcc-4.3/gcc/gcc/testsuite/gcc.c-torture/execute/bu
iltin-bitops-1.c  -w  -O3 -fomit-frame-pointer -funroll-loops  -fno-show-column
 -lm   -o /home/dave/gnu/gcc-4.3/objdir/gcc/testsuite/gcc/builtin-bitops-1.x4
 (timeout = 300)
/tmp/ccSKCJDe.s: Assembler messages:
/tmp/ccSKCJDe.s:8021: Error: Field out of range [1..32] (0).
/tmp/ccSKCJDe.s:8021: Error: Invalid operands
/tmp/ccSKCJDe.s:8105: Error: Field out of range [1..32] (0).
/tmp/ccSKCJDe.s:8105: Error: Invalid operands
compiler exited with status 1
output is:
/tmp/ccSKCJDe.s: Assembler messages:
/tmp/ccSKCJDe.s:8021: Error: Field out of range [1..32] (0).
/tmp/ccSKCJDe.s:8021: Error: Invalid operands
/tmp/ccSKCJDe.s:8105: Error: Field out of range [1..32] (0).
/tmp/ccSKCJDe.s:8105: Error: Invalid operands

FAIL: gcc.c-torture/execute/builtin-bitops-1.c compilation,  -O3
-fomit-frame-po
inter -funroll-loops

The problem is this instruction:

        zdep %r29,2,0,%r20

The third operand is the length for the deposit.  A length of zero isn't
allowed.  Valid lengths are from 1 to 32.

This is the pattern which generated the above instruction:

(define_insn ""
  [(set (match_operand:SI 0 "register_operand" "=r")
        (and:SI (ashift:SI (match_operand:SI 1 "register_operand" "r")
                           (match_operand:SI 2 "const_int_operand" ""))
                (match_operand:SI 3 "const_int_operand" "")))]
  "exact_log2 (1 + (INTVAL (operands[3]) >> (INTVAL (operands[2]) & 31))) >= 0"
  "*
{
  int cnt = INTVAL (operands[2]) & 31;
  operands[3] = GEN_INT (exact_log2 (1 + (INTVAL (operands[3]) >> cnt)));
  operands[2] = GEN_INT (31 - cnt);
  return \"{zdep|depw,z} %1,%2,%3,%0\";
}"
  [(set_attr "type" "shift")
   (set_attr "length" "4")])

The RTL that generated the instruction is:

(insn:TI 8138 3652 33318 (set (reg/v:SI 20 %r20 [orig:2429 count ] [2429])
        (and:SI (ashift:SI (reg:SI 29 %r29 [1812])
                (const_int -3 [0xfffffffd]))
            (const_int 1 [0x1]))) 195 {*pa.md:7267} (nil)
    (nil))


-- 
           Summary: FAIL: gcc.c-torture/execute/builtin-bitops-1.c
                    compilation,  -O3 ...
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: danglin at gcc dot gnu dot org
 GCC build triplet: hppa*-*-*
  GCC host triplet: hppa*-*-*
GCC target triplet: hppa*-*-*


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31123

Reply via email to