[Bug middle-end/99394] s254 benchmark of TSVC is vectorized by clang and not by gcc

hubicka at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Mar 4 23:29:19 GMT 2021


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

--- Comment #1 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
Here we fail with:
tsvc.c:1526:27: note:   vect_is_simple_use: operand x_30 = PHI <_2(8),
x_18(3)>, type of def: unknown
tsvc.c:1526:27: missed:   Unsupported pattern.
tsvc.c:1527:26: missed:   not vectorized: unsupported use in stmt.
tsvc.c:1526:27: missed:  unexpected pattern.


{
  int i;
  int nl;
  real_t x;
  static const char __func__[5] = "s254";
  struct timeval * _1;
  float _2;
  float _3;
  float _4;
  struct timeval * _5;
  real_t _17;
  unsigned int ivtmp_27;
  unsigned int ivtmp_28;
  unsigned int ivtmp_29;
  unsigned int ivtmp_35;

  <bb 2> [local count: 108459]:
  initialise_arrays (&__func__);
  _1 = &func_args_13(D)->t1;
  gettimeofday (_1, 0B);

  <bb 3> [local count: 10737416]:
  # nl_31 = PHI <nl_20(7), 0(2)>
  # ivtmp_28 = PHI <ivtmp_27(7), 400000(2)>
  x_18 = b[31999];

  <bb 4> [local count: 1063004409]:
  # x_30 = PHI <_2(8), x_18(3)>
  # i_32 = PHI <i_22(8), 0(3)>
  # ivtmp_35 = PHI <ivtmp_29(8), 32000(3)>
  _2 = b[i_32];
  _3 = _2 + x_30;
  _4 = _3 * 5.0e-1;
  a[i_32] = _4;
  i_22 = i_32 + 1;
  ivtmp_29 = ivtmp_35 - 1;
  if (ivtmp_29 != 0)
    goto <bb 8>; [98.99%]
  else
    goto <bb 5>; [1.01%]

  <bb 8> [local count: 1052266996]:
  goto <bb 4>; [100.00%]

....


More information about the Gcc-bugs mailing list