1  /* { dg-do compile { target ia32 } } */
       2  /* { dg-options "-O2 -msse4" } */
       3  typedef int __v4si __attribute__ ((__vector_size__ (16)));
       4  
       5  long long ior_1(__v4si v) {
       6    unsigned int loVal = (unsigned int)v[0];
       7    unsigned int hiVal = (unsigned int)v[1];
       8    return (long long)(loVal) | ((long long)(hiVal) << 32);
       9  }
      10  
      11  long long ior_2(__v4si v) {
      12    unsigned int loVal = (unsigned int)v[2];
      13    unsigned int hiVal = (unsigned int)v[3];
      14    return (long long)(loVal) | ((long long)(hiVal) << 32);
      15  }
      16  
      17  long long xor_1(__v4si v) {
      18    unsigned int loVal = (unsigned int)v[0];
      19    unsigned int hiVal = (unsigned int)v[1];
      20    return (long long)(loVal) ^ ((long long)(hiVal) << 32);
      21  }
      22  
      23  long long xor_2(__v4si v) {
      24    unsigned int loVal = (unsigned int)v[2];
      25    unsigned int hiVal = (unsigned int)v[3];
      26    return (long long)(loVal) ^ ((long long)(hiVal) << 32);
      27  }
      28  /* { dg-final { scan-assembler-not "\torb\t\\\$0," } } */
      29  /* { dg-final { scan-assembler-not "\txorb\t\\\$0," } } */
      30