1  /* { dg-do compile } */
       2  /* { dg-options "-O2 -msse" } */
       3  
       4  typedef int __m64 __attribute__ ((__vector_size__ (8)));
       5  
       6  extern __m64 foo () ;
       7  
       8  void bar (const int input_bpl, const unsigned char *input,
       9  	  unsigned char *output, unsigned long x1)
      10  {
      11    unsigned char *pix_end_ptr = output + x1 * 4;
      12    __m64 m_original = { 0, 0 };
      13    __m64 m_base_addr = __builtin_ia32_vec_init_v2si (0, input_bpl);
      14    __m64 m_addr = __builtin_ia32_paddd (m_original, m_base_addr);
      15    __m64 *a0 = (__m64 *) input;
      16  
      17    for (; output < pix_end_ptr; output += 4)
      18      {
      19        a0 = (__m64 *) (input + __builtin_ia32_vec_ext_v2si (m_addr, 0));
      20        m_addr = foo ();
      21        __builtin_prefetch (a0, 0);
      22      }
      23  }