/* { dg-do compile } */
/* { dg-options "-O0 -std=gnu99" } */

void foo ()
{
  long long ll, off;

  /* Indirect.  */
  ll = __builtin_bpf_load_byte (off);
  ll = __builtin_bpf_load_half (off);
  ll = __builtin_bpf_load_word (off);

  /* Absolute.  */
  ll = __builtin_bpf_load_byte (0);
  ll = __builtin_bpf_load_half (4);
  ll = __builtin_bpf_load_word (8);
}

/* { dg-final { scan-assembler "ldindb\t%r.,0.*ldindh\t%r.,0.*ldindw\t%r.,0" } } */
/* { dg-final { scan-assembler "ldabsb\t0.*ldabsh\t4.*ldabsw\t8" } } */