summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorTim Northover <t.p.northover@gmail.com>2019-10-30 09:26:58 +0000
committerTim Northover <t.p.northover@gmail.com>2019-11-20 13:20:02 +0000
commitdb73bcd98ef4ffbe91405a5adfcfdcd83bc007f4 (patch)
treeab66e32b9ac95a374eb5d7cb09f59c59c08ef211 /clang
parentc34478f5f6c7ef1ae8fb3605fbdec0634d543fed (diff)
downloadbcm5719-llvm-db73bcd98ef4ffbe91405a5adfcfdcd83bc007f4.tar.gz
bcm5719-llvm-db73bcd98ef4ffbe91405a5adfcfdcd83bc007f4.zip
ARM-NEON: separate soon-to-be conflicting f16 patterns. NFC.
This separates some intrinsic definitions into multiple instantiations because they use a modifier that forces the float size to a given value. That modifier won't work in the new NeonEmitter modifier scheme and committing this separately allows the Python script to be run on the .td files to perform the conversion automatically.
Diffstat (limited to 'clang')
-rw-r--r--clang/include/clang/Basic/arm_fp16.td8
1 files changed, 6 insertions, 2 deletions
diff --git a/clang/include/clang/Basic/arm_fp16.td b/clang/include/clang/Basic/arm_fp16.td
index ca33a8d2ec0..bb9873efac8 100644
--- a/clang/include/clang/Basic/arm_fp16.td
+++ b/clang/include/clang/Basic/arm_fp16.td
@@ -43,7 +43,9 @@ let ArchGuard = "defined(__ARM_FEATURE_FP16_SCALAR_ARITHMETIC) && defined(__aarc
def FRINTX_S64H : SInst<"vrndx", "ss", "Sh">;
// Conversion
- def SCALAR_SCVTFSH : SInst<"vcvth_f16", "Ys", "silUsUiUl">;
+ def SCALAR_SCVTFSH : SInst<"vcvth_f16", "Ys", "sUs">;
+ def SCALAR_SCVTFSH1 : SInst<"vcvth_f16", "Ys", "iUi">;
+ def SCALAR_SCVTFSH2 : SInst<"vcvth_f16", "Ys", "lUl">;
def SCALAR_FCVTZSH : SInst<"vcvt_s16", "$s", "Sh">;
def SCALAR_FCVTZSH1 : SInst<"vcvt_s32", "Is", "Sh">;
def SCALAR_FCVTZSH2 : SInst<"vcvt_s64", "Ls", "Sh">;
@@ -75,7 +77,9 @@ let ArchGuard = "defined(__ARM_FEATURE_FP16_SCALAR_ARITHMETIC) && defined(__aarc
def SCALAR_FCVTPUH1 : SInst<"vcvtp_u32", "Us", "Sh">;
def SCALAR_FCVTPUH2 : SInst<"vcvtp_u64", "Os", "Sh">;
let isVCVT_N = 1 in {
- def SCALAR_SCVTFSHO : SInst<"vcvth_n_f16", "Ysi", "silUsUiUl">;
+ def SCALAR_SCVTFSHO : SInst<"vcvth_n_f16", "Ysi", "sUs">;
+ def SCALAR_SCVTFSH1O: SInst<"vcvth_n_f16", "Ysi", "iUi">;
+ def SCALAR_SCVTFSH2O: SInst<"vcvth_n_f16", "Ysi", "lUl">;
def SCALAR_FCVTZSHO : SInst<"vcvt_n_s16", "$si", "Sh">;
def SCALAR_FCVTZSH1O: SInst<"vcvt_n_s32", "Isi", "Sh">;
def SCALAR_FCVTZSH2O: SInst<"vcvt_n_s64", "Lsi", "Sh">;
OpenPOWER on IntegriCloud