void test_vstrq_p128(poly128_t * ptr, poly128_t val) {
  // CHECK-LABEL: test_vstrq_p128
  vstrq_p128(ptr, val);
// CHECK-AARCH64: str {{x[0-9]+}}, [{{x[0-9]+}}, #8]
// CHECK-AARCH64-NEXT: str  {{x[0-9]+}}, [{{x[0-9]+}}]

  // CHECK-ARM64: stp {{x[0-9]+}}, {{x[0-9]+}}, [x0]
}
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
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]
}
示例#4
0
void test_vstrq_p128(poly128_t * ptr, poly128_t val) {
  // CHECK-LABEL: test_vstrq_p128
  vstrq_p128(ptr, val);
	// CHECK: str	{{x[0-9]+}}, [{{x[0-9]+}}, #8]
	// CHECK-NEXT: str	 {{x[0-9]+}}, [{{x[0-9]+}}]
}
示例#5
0
// 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));

}
示例#6
0
// CHECK-LABEL: define void @test_vstrq_p128(i128* %ptr, i128 %val) #0 {
// CHECK:   [[TMP0:%.*]] = bitcast i128* %ptr to i8*
// CHECK:   [[TMP1:%.*]] = bitcast i8* [[TMP0]] to i128*
// CHECK:   store i128 %val, i128* [[TMP1]]
// CHECK:   ret void
void test_vstrq_p128(poly128_t * ptr, poly128_t val) {
  vstrq_p128(ptr, val);

}