Ejemplo n.º 1
0
static void
xop_test (void)
{
  int i;
  
  /* Check hsubbw */
  init_sbyte ();
  
  for (i = 0; i < NUM; i++)
    dst.x[i] = _mm_hsubw_epi8 (src1.x[i]);
  
  if (check_sbyte2word())
  abort ();
  

  /* Check hsubwd */
  init_sword ();

  for (i = 0; i < (NUM ); i++)
    dst.x[i] = _mm_hsubd_epi16 (src1.x[i]);
  
  if (check_sword2dword())
    abort (); 
   
   /* Check hsubdq */
  init_sdword ();
    for (i = 0; i < NUM; i++)
    dst.x[i] = _mm_hsubq_epi32 (src1.x[i]);
  
  if (check_dword2qword())
    abort ();
}
Ejemplo n.º 2
0
__m128i test_mm_hsubw_epi8(__m128i a) {
  // CHECK: @llvm.x86.xop.vphsubbw
  // CHECK-ASM: vphsubbw %xmm{{.*}}, %xmm{{.*}}
  return _mm_hsubw_epi8(a);
}
Ejemplo n.º 3
0
__m128i test_mm_hsubw_epi8(__m128i a) {
  // CHECK-LABEL: test_mm_hsubw_epi8
  // CHECK: call <8 x i16> @llvm.x86.xop.vphsubbw(<16 x i8> %{{.*}})
  return _mm_hsubw_epi8(a);
}
Ejemplo n.º 4
0
__m128i test_mm_hsubw_epi8(__m128i a) {
  // CHECK-LABEL: test_mm_hsubw_epi8
  // CHECK: @llvm.x86.xop.vphsubbw
  return _mm_hsubw_epi8(a);
}