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

--- Comment #1 from Tom de Vries <vries at gcc dot gnu.org> ---
First FAIL minimizes to:
...
typedef __uint128_t T;

union u {
  T t;
  struct {
    unsigned long long x;
    unsigned long long y;
  } xy;
};

#define PRINT(VAR)                                      \
  do                                                    \
    {                                                   \
      __builtin_printf (#VAR ": lo: %llx\n", VAR.xy.x); \
      __builtin_printf (#VAR ": hi: %llx\n", VAR.xy.y); \
    } \
  while (0)

extern T __udivmodti4 (T, T, T *);

int
main (void)
{
  union u a, b, mod, div;
  a.t = -4;
  b.t = 1;
  PRINT (a);
  PRINT (b);
  div.t = __udivmodti4 (a.t, b.t, &mod.t);
  PRINT (div);
  PRINT (mod);
  if (mod.t != 0)
    __builtin_abort ();

  return 0;
}
...

Fails like this:
...
$ ./install/bin/nvptx-none-run  ./pr97459-1.exe 
a: lo: fffffffffffffffc
a: hi: ffffffffffffffff
b: lo: 1
b: hi: 0
div: lo: fffffffffffffffd
div: hi: ffffffffffffffff
mod: lo: ffffffffffff
mod: hi: 0
nvptx-run: error getting kernel result: unspecified launch failure
(CUDA_ERROR_LAUNCH_FAILED, 719)
$
...

With -O0 JIT instead:
...
$ ./install/bin/nvptx-none-run -O0  ./pr97459-1.exe 
a: lo: fffffffffffffffc
a: hi: ffffffffffffffff
b: lo: 1
b: hi: 0
div: lo: fffffffffffffffc
div: hi: ffffffffffffffff
mod: lo: 0
mod: hi: 0
...

Reply via email to