コード例 #1
0
ファイル: aarch64-neon-ranges.c プロジェクト: 4ntoine/clang
void test_vext_8bit(int8x8_t small, int8x16_t big) {
  vext_s8(small, small, 7);
  vext_u8(small, small, 7);
  vext_p8(small, small, 7);
  vextq_s8(big, big, 15);
  vextq_u8(big, big, 15);
  vextq_p8(big, big, 15);

  vext_s8(small, small, 8); // expected-error {{argument should be a value from 0 to 7}}
  vext_u8(small, small, 8); // expected-error {{argument should be a value from 0 to 7}}
  vext_p8(small, small, 8); // expected-error {{argument should be a value from 0 to 7}}
  vextq_s8(big, big, 16); // expected-error {{argument should be a value from 0 to 15}}
  vextq_u8(big, big, 16); // expected-error {{argument should be a value from 0 to 15}}
  vextq_p8(big, big, 16); // expected-error {{argument should be a value from 0 to 15}}
}
コード例 #2
0
ファイル: vextQp8.c プロジェクト: AlexMioMio/gcc
void test_vextQp8 (void)
{
  poly8x16_t out_poly8x16_t;
  poly8x16_t arg0_poly8x16_t;
  poly8x16_t arg1_poly8x16_t;

  out_poly8x16_t = vextq_p8 (arg0_poly8x16_t, arg1_poly8x16_t, 0);
}
コード例 #3
0
ファイル: vextQp8.c プロジェクト: 5432935/crossbridge
void test_vextQp8 (void)
{
  poly8x16_t out_poly8x16_t;
  poly8x16_t arg0_poly8x16_t;
  poly8x16_t arg1_poly8x16_t;

 /* LLVM LOCAL */
  out_poly8x16_t = vextq_p8 (arg0_poly8x16_t, arg1_poly8x16_t, 1);
}
コード例 #4
0
poly8x16_t test_vextq_p8(poly8x16_t a, poly8x16_t b) {
  // CHECK-LABEL: test_vextq_p8
  return vextq_p8(a, b, 2);
  // CHECK: ext {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, #{{(0x)?2}}
}
コード例 #5
0
ファイル: aarch64-neon-extract.c プロジェクト: JaredCJR/clang
// CHECK-LABEL: define <16 x i8> @test_vextq_p8(<16 x i8> %a, <16 x i8> %b) #0 {
// CHECK:   [[VEXT:%.*]] = shufflevector <16 x i8> %a, <16 x i8> %b, <16 x i32> <i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17>
// CHECK:   ret <16 x i8> [[VEXT]]
poly8x16_t test_vextq_p8(poly8x16_t a, poly8x16_t b) {
  return vextq_p8(a, b, 2);
}