37 lines · c
1// REQUIRES: aarch64-registered-target2 3// RUN: not %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve \4// RUN: -target-feature +neon -S -O1 -o - %s 2>&1 | FileCheck %s5 6// Set a vector constraint for an sve predicate register7// As the wrong constraint is used for an SVBool,8// the compiler will try to extend the nxv16i1 to an nxv16i89// TODO: We don't have patterns for this yet but once they are added this test10// should be updated to check for an assembler error11__SVBool_t funcB1(__SVBool_t in)12{13 __SVBool_t ret ;14 asm volatile (15 "mov %[ret].b, %[in].b \n"16 : [ret] "=w" (ret)17 : [in] "w" (in)18 :);19 20 return ret ;21}22 23__SVCount_t funcB1(__SVCount_t in)24{25 __SVCount_t ret ;26 asm volatile (27 "mov %[ret].b, %[in].b \n"28 : [ret] "=w" (ret)29 : [in] "w" (in)30 :);31 32 return ret ;33}34 35// CHECK: funcB136// CHECK-ERROR: fatal error: error in backend: Cannot select37