60 lines · c
1// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --version 62 3// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +neon -O2 -Werror -Wall -emit-llvm -o - %s | FileCheck %s4// RUN: %clang_cc1 -x c++ -triple aarch64-none-linux-gnu -target-feature +neon -O2 -Werror -Wall -emit-llvm -o - %s | FileCheck %s -check-prefix CHECK-CXX5 6// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +neon -O2 -Werror -Wall -S -o /dev/null %s7 8// REQUIRES: aarch64-registered-target9 10#include <arm_neon.h>11 12// CHECK-LABEL: define dso_local <8 x i8> @vector_init_test(13// CHECK-SAME: <1 x i8> [[X:%.*]]) local_unnamed_addr #[[ATTR0:[0-9]+]] {14// CHECK-NEXT: [[ENTRY:.*:]]15// CHECK-NEXT: [[VECINIT14:%.*]] = shufflevector <1 x i8> [[X]], <1 x i8> poison, <8 x i32> zeroinitializer16// CHECK-NEXT: ret <8 x i8> [[VECINIT14]]17//18// CHECK-CXX-LABEL: define dso_local <8 x i8> @_Z16vector_init_testu6__mfp8(19// CHECK-CXX-SAME: <1 x i8> [[X:%.*]]) local_unnamed_addr #[[ATTR0:[0-9]+]] {20// CHECK-CXX-NEXT: [[ENTRY:.*:]]21// CHECK-CXX-NEXT: [[VECINIT14:%.*]] = shufflevector <1 x i8> [[X]], <1 x i8> poison, <8 x i32> zeroinitializer22// CHECK-CXX-NEXT: ret <8 x i8> [[VECINIT14]]23//24mfloat8x8_t vector_init_test(__mfp8 x) {25 return (mfloat8x8_t) {x, x, x, x, x, x, x, x};26}27 28struct S {29 __mfp8 x;30};31 32struct S s;33 34// CHECK-LABEL: define dso_local void @f(35// CHECK-SAME: <1 x i8> [[X:%.*]]) local_unnamed_addr #[[ATTR1:[0-9]+]] {36// CHECK-NEXT: [[ENTRY:.*:]]37// CHECK-NEXT: store <1 x i8> [[X]], ptr @s, align 1, !tbaa [[__MFP8_TBAA6:![0-9]+]]38// CHECK-NEXT: ret void39//40// CHECK-CXX-LABEL: define dso_local void @_Z1fu6__mfp8(41// CHECK-CXX-SAME: <1 x i8> [[X:%.*]]) local_unnamed_addr #[[ATTR1:[0-9]+]] {42// CHECK-CXX-NEXT: [[ENTRY:.*:]]43// CHECK-CXX-NEXT: store <1 x i8> [[X]], ptr @s, align 1, !tbaa [[__MFP8_TBAA6:![0-9]+]]44// CHECK-CXX-NEXT: ret void45//46void f(__mfp8 x) {47 s = (struct S){x};48}49//.50// CHECK: [[META4:![0-9]+]] = !{!"omnipotent char", [[META5:![0-9]+]], i64 0}51// CHECK: [[META5]] = !{!"Simple C/C++ TBAA"}52// CHECK: [[__MFP8_TBAA6]] = !{[[META7:![0-9]+]], [[META7]], i64 0}53// CHECK: [[META7]] = !{!"__mfp8", [[META4]], i64 0}54//.55// CHECK-CXX: [[META4:![0-9]+]] = !{!"omnipotent char", [[META5:![0-9]+]], i64 0}56// CHECK-CXX: [[META5]] = !{!"Simple C++ TBAA"}57// CHECK-CXX: [[__MFP8_TBAA6]] = !{[[META7:![0-9]+]], [[META7]], i64 0}58// CHECK-CXX: [[META7]] = !{!"__mfp8", [[META4]], i64 0}59//.60