https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88309

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2018-12-03
          Component|tree-optimization           |target
            Version|unknown                     |9.0
            Summary|ICE: Floating point         |ICE: Floating point
                   |exception (in               |exception (in
                   |is_miss_rate_acceptable)    |is_miss_rate_acceptable),
                   |                            |target assigning alignent
                   |                            |of 4 bits(!) to vector
     Ever confirmed|0                           |1

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
  total_positions = (cache_line_size / align_unit) * distinct_iters;

align_unit shouldn't be zero...

  ref_type = TREE_TYPE (ref->mem);
  align_unit = TYPE_ALIGN (ref_type) / 8;
  if (is_miss_rate_acceptable (prefetch_block, step, delta,
                               reduced_prefetch_block, align_unit))

(gdb) p debug_tree ($1)
 <mem_ref 0x7ffff66af708
    type <vector_type 0x7ffff6a5e690 __vector float
        type <real_type 0x7ffff68933f0 float sizes-gimplified SF
            size <integer_cst 0x7ffff687af90 constant 32>
            unit-size <integer_cst 0x7ffff687afa8 constant 4>
            align:32 warn_if_not_align:0 symtab:0 alias-set 3 canonical-type
0x7ffff68933f0 precision:32
            pointer_to_this <pointer_type 0x7ffff6893930>>
        sizes-gimplified V4SF
        size <integer_cst 0x7ffff688c300 constant 128>
        unit-size <integer_cst 0x7ffff688c318 constant 16>
        user align:4 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
0x7ffff694ddc8 nunits:4>

user-align of 4 bits?!  The target must be smoking weeds here.

Reply via email to