19427aa2dSDiogo N. Sampaio // Bug: https://bugs.llvm.org/show_bug.cgi?id=42668
29427aa2dSDiogo N. Sampaio // REQUIRES: arm-registered-target
39427aa2dSDiogo N. Sampaio 
4*532dc62bSNikita Popov // RUN: %clang_cc1 -no-opaque-pointers -triple armv8-arm-none-eabi -emit-llvm -target-cpu generic -Os -fcxx-exceptions -o - -x c++ %s | FileCheck --check-prefixes=CHECK,A8 %s
5*532dc62bSNikita Popov // RUN: %clang_cc1 -no-opaque-pointers -triple armv8-unknown-linux-android -emit-llvm -target-cpu generic -Os -fcxx-exceptions -o - -x c++ %s | FileCheck --check-prefixes=CHECK,A16 %s
69427aa2dSDiogo N. Sampaio 
79427aa2dSDiogo N. Sampaio // CHECK: [[E:%[A-z0-9]+]] = tail call i8* @__cxa_allocate_exception
89427aa2dSDiogo N. Sampaio // CHECK-NEXT: [[BC:%[A-z0-9]+]] = bitcast i8* [[E]] to <2 x i64>*
99427aa2dSDiogo N. Sampaio // A8-NEXT: store <2 x i64> <i64 1, i64 2>, <2 x i64>* [[BC]], align 8
109427aa2dSDiogo N. Sampaio // A16-NEXT: store <2 x i64> <i64 1, i64 2>, <2 x i64>* [[BC]], align 16
119427aa2dSDiogo N. Sampaio #include <arm_neon.h>
129427aa2dSDiogo N. Sampaio 
main(void)139427aa2dSDiogo N. Sampaio int main(void) {
149427aa2dSDiogo N. Sampaio   try {
159427aa2dSDiogo N. Sampaio     throw vld1q_u64(((const uint64_t[2]){1, 2}));
169427aa2dSDiogo N. Sampaio   } catch (uint64x2_t exc) {
179427aa2dSDiogo N. Sampaio     return 0;
189427aa2dSDiogo N. Sampaio   }
199427aa2dSDiogo N. Sampaio   return 1;
209427aa2dSDiogo N. Sampaio }
219427aa2dSDiogo N. Sampaio 
22