Skip to content

Commit db73bcd

Browse files
committed
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.
1 parent c34478f commit db73bcd

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

clang/include/clang/Basic/arm_fp16.td

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,9 @@ let ArchGuard = "defined(__ARM_FEATURE_FP16_SCALAR_ARITHMETIC) && defined(__aarc
4343
def FRINTX_S64H : SInst<"vrndx", "ss", "Sh">;
4444

4545
// Conversion
46-
def SCALAR_SCVTFSH : SInst<"vcvth_f16", "Ys", "silUsUiUl">;
46+
def SCALAR_SCVTFSH : SInst<"vcvth_f16", "Ys", "sUs">;
47+
def SCALAR_SCVTFSH1 : SInst<"vcvth_f16", "Ys", "iUi">;
48+
def SCALAR_SCVTFSH2 : SInst<"vcvth_f16", "Ys", "lUl">;
4749
def SCALAR_FCVTZSH : SInst<"vcvt_s16", "$s", "Sh">;
4850
def SCALAR_FCVTZSH1 : SInst<"vcvt_s32", "Is", "Sh">;
4951
def SCALAR_FCVTZSH2 : SInst<"vcvt_s64", "Ls", "Sh">;
@@ -75,7 +77,9 @@ let ArchGuard = "defined(__ARM_FEATURE_FP16_SCALAR_ARITHMETIC) && defined(__aarc
7577
def SCALAR_FCVTPUH1 : SInst<"vcvtp_u32", "Us", "Sh">;
7678
def SCALAR_FCVTPUH2 : SInst<"vcvtp_u64", "Os", "Sh">;
7779
let isVCVT_N = 1 in {
78-
def SCALAR_SCVTFSHO : SInst<"vcvth_n_f16", "Ysi", "silUsUiUl">;
80+
def SCALAR_SCVTFSHO : SInst<"vcvth_n_f16", "Ysi", "sUs">;
81+
def SCALAR_SCVTFSH1O: SInst<"vcvth_n_f16", "Ysi", "iUi">;
82+
def SCALAR_SCVTFSH2O: SInst<"vcvth_n_f16", "Ysi", "lUl">;
7983
def SCALAR_FCVTZSHO : SInst<"vcvt_n_s16", "$si", "Sh">;
8084
def SCALAR_FCVTZSH1O: SInst<"vcvt_n_s32", "Isi", "Sh">;
8185
def SCALAR_FCVTZSH2O: SInst<"vcvt_n_s64", "Lsi", "Sh">;

0 commit comments

Comments
 (0)