1  /* Verify that overloaded built-ins for vec_ld* with int
       2     inputs produce the right code.  */
       3  
       4  /* { dg-do compile } */
       5  /* { dg-require-effective-target powerpc_altivec_ok } */
       6  /* { dg-options "-maltivec -O2" } */
       7  
       8  #include <altivec.h>
       9  
      10  vector signed int
      11  testld_vsi_vsi (long long ll1, vector signed int vsi2)
      12  {
      13    return vec_ld (ll1, &vsi2);
      14  }
      15  
      16  vector signed int
      17  testld_vsi_si (long long ll1, signed int si)
      18  {
      19    return vec_ld (ll1, &si);
      20  }
      21  
      22  vector unsigned int
      23  testld_vui_vui (long long ll1, vector unsigned int vui2)
      24  {
      25    return vec_ld (ll1, &vui2);
      26  }
      27  
      28  vector unsigned int
      29  testld_vui_ui (long long ll1, unsigned int ui)
      30  {
      31    return vec_ld (ll1, &ui);
      32  }
      33  
      34  vector bool int
      35  testld_vbi_vbi (long long ll1, vector bool int vbi2)
      36  {
      37    return vec_ld (ll1, &vbi2);
      38  }
      39  
      40  vector signed int
      41  testld_cst_vsi (vector signed int vsi2)
      42  {
      43    return vec_ld (16, &vsi2);
      44  }
      45  
      46  vector signed int
      47  testld_cst_si (signed int si)
      48  {
      49    return vec_ld (32, &si);
      50  }
      51  
      52  vector unsigned int
      53  testld_cst_vui (vector unsigned int vui2)
      54  {
      55    return vec_ld (48, &vui2);
      56  }
      57  
      58  vector unsigned int
      59  testld_cst_ui (unsigned int ui)
      60  {
      61    return vec_ld (64, &ui);
      62  }
      63  
      64  vector bool int
      65  testld_cst_vbi (vector bool int vbi2)
      66  {
      67    return vec_ld (80, &vbi2);
      68  }
      69  
      70  /* { dg-final { scan-assembler-times {\mlvx\M|\mlxvd2x\M|\mlxvw4x\M|\mlxv\M} 10 } } */
      71