コード例 #1
0
poly128_t test_vldrq_p128(poly128_t * ptr) {
  // CHECK-LABEL: test_vldrq_p128
  return vldrq_p128(ptr);
  // CHECK-AARCH64: ldr {{x[0-9]+}}, [{{x[0-9]+}}]
  // CHECK-AARCH64-NEXT: ldr {{x[0-9]+}}, [{{x[0-9]+}}, #8]

  // CHECK-ARM64: ldp {{x[0-9]+}}, {{x[0-9]+}}, [x0]
}
コード例 #2
0
void test_ld_st_p128(poly128_t * ptr) {
  // CHECK-LABEL: test_ld_st_p128
   vstrq_p128(ptr+1, vldrq_p128(ptr));
 // CHECK-AARCH64: ldr {{q[0-9]+}}, [{{x[0-9]+}}]
 // CHECK-AARCH64-NEXT: str {{q[0-9]+}}, [{{x[0-9]+}}, #16]

 // CHECK-ARM64: ldp [[PLO:x[0-9]+]], [[PHI:x[0-9]+]], [{{x[0-9]+}}]
 // CHECK-ARM64-NEXT: stp [[PLO]], [[PHI]], [{{x[0-9]+}}, #16]
}
コード例 #3
0
ファイル: attr-neon3.c プロジェクト: 0day-ci/gcc
foo (poly128_t* ptr)
{
  return vldrq_p128 (ptr);
}
コード例 #4
0
ファイル: aarch64-poly128.c プロジェクト: iewrer/Clang
void test_ld_st_p128(poly128_t * ptr) {
  // CHECK-LABEL: test_ld_st_p128
   vstrq_p128(ptr+1, vldrq_p128(ptr));
	// CHECK: ldr {{q[0-9]+}}, [{{x[0-9]+}}]
	// CHECK-NEXT: str	{{q[0-9]+}}, [{{x[0-9]+}}, #16]
}
コード例 #5
0
ファイル: aarch64-poly128.c プロジェクト: iewrer/Clang
poly128_t test_vldrq_p128(poly128_t * ptr) {
  // CHECK-LABEL: test_vldrq_p128
  return vldrq_p128(ptr);
	// CHECK: ldr	{{x[0-9]+}}, [{{x[0-9]+}}]
	// CHECK-NEXT: ldr	{{x[0-9]+}}, [{{x[0-9]+}}, #8]
}
コード例 #6
0
ファイル: aarch64-poly128.c プロジェクト: AlexDenisov/clang
// CHECK-LABEL: define void @test_ld_st_p128(i128* %ptr) #0 {
// CHECK:   [[TMP0:%.*]] = bitcast i128* %ptr to i8*
// CHECK:   [[TMP1:%.*]] = bitcast i8* [[TMP0]] to i128*
// CHECK:   [[TMP2:%.*]] = load i128, i128* [[TMP1]]
// CHECK:   [[ADD_PTR:%.*]] = getelementptr inbounds i128, i128* %ptr, i64 1
// CHECK:   [[TMP3:%.*]] = bitcast i128* [[ADD_PTR]] to i8*
// CHECK:   [[TMP4:%.*]] = bitcast i8* [[TMP3]] to i128*
// CHECK:   store i128 [[TMP2]], i128* [[TMP4]]
// CHECK:   ret void
void test_ld_st_p128(poly128_t * ptr) {
   vstrq_p128(ptr+1, vldrq_p128(ptr));

}
コード例 #7
0
ファイル: aarch64-poly128.c プロジェクト: AlexDenisov/clang
// CHECK-LABEL: define i128 @test_vldrq_p128(i128* %ptr) #0 {
// CHECK:   [[TMP0:%.*]] = bitcast i128* %ptr to i8*
// CHECK:   [[TMP1:%.*]] = bitcast i8* [[TMP0]] to i128*
// CHECK:   [[TMP2:%.*]] = load i128, i128* [[TMP1]]
// CHECK:   ret i128 [[TMP2]]
poly128_t test_vldrq_p128(poly128_t * ptr) {
  return vldrq_p128(ptr);

}