diff options
author | Tim Northover <t.p.northover@gmail.com> | 2019-10-30 09:26:58 +0000 |
---|---|---|
committer | Tim Northover <t.p.northover@gmail.com> | 2019-11-20 13:20:02 +0000 |
commit | db73bcd98ef4ffbe91405a5adfcfdcd83bc007f4 (patch) | |
tree | ab66e32b9ac95a374eb5d7cb09f59c59c08ef211 /clang | |
parent | c34478f5f6c7ef1ae8fb3605fbdec0634d543fed (diff) | |
download | bcm5719-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.td | 8 |
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">; |