654 changes: 454 additions & 200 deletions clang/include/clang/Basic/arm_neon.td

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion clang/test/CodeGen/arm64_vcvtfp.c
Original file line number Diff line number Diff line change
Expand Up @@ -44,5 +44,5 @@ float32x4_t test_vcvtx_high_f32_f64(float32x2_t x, float64x2_t v) {
return vcvtx_high_f32_f64(x, v);
// CHECK: llvm.aarch64.neon.fcvtxn.v2f32.v2f64
// CHECK: shufflevector
// CHECK-NEXT: ret
// CHECK: ret
}
2 changes: 1 addition & 1 deletion clang/test/Sema/arm-neon-types.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ float32x2_t test2(uint32x2_t x) {
float32x2_t test3(uint32x2_t x) {
// FIXME: The "incompatible result type" error is due to pr10112 and should be
// removed when that is fixed.
return vcvt_n_f32_u32(x, 0); // expected-error {{argument should be a value from 1 to 32}} expected-error {{incompatible result type}}
return vcvt_n_f32_u32(x, 0); // expected-error {{argument should be a value from 1 to 32}}
}

typedef signed int vSInt32 __attribute__((__vector_size__(16)));
Expand Down
2 changes: 1 addition & 1 deletion clang/test/Sema/arm64-neon-args.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

// rdar://13527900
void vcopy_reject(float32x4_t vOut0, float32x4_t vAlpha, int t) {
vcopyq_laneq_f32(vOut0, 1, vAlpha, t); // expected-error {{argument to '__builtin_neon_vgetq_lane_f32' must be a constant integer}} expected-error {{initializing 'float32_t' (aka 'float') with an expression of incompatible type 'void'}}
vcopyq_laneq_f32(vOut0, 1, vAlpha, t); // expected-error {{argument to '__builtin_neon_vgetq_lane_f32' must be a constant integer}}
}

// rdar://problem/15256199
Expand Down
4,837 changes: 1,849 additions & 2,988 deletions clang/utils/TableGen/NeonEmitter.cpp

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions clang/utils/TableGen/TableGenBackends.h
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,9 @@ void EmitClangCommentCommandList(RecordKeeper &Records, raw_ostream &OS);
void EmitNeon(RecordKeeper &Records, raw_ostream &OS);
void EmitNeonSema(RecordKeeper &Records, raw_ostream &OS);
void EmitNeonTest(RecordKeeper &Records, raw_ostream &OS);
void EmitNeon2(RecordKeeper &Records, raw_ostream &OS);
void EmitNeonSema2(RecordKeeper &Records, raw_ostream &OS);
void EmitNeonTest2(RecordKeeper &Records, raw_ostream &OS);

void EmitClangAttrDocs(RecordKeeper &Records, raw_ostream &OS);

Expand Down