Author: ab Date: Fri Aug 21 20:30:13 2015 New Revision: 245778 URL: http://llvm.org/viewvc/llvm-project?rev=245778&view=rev Log: [ARM NEON] Remove special-case for f16 vcvt handling. NFCI.
We can use the 'H' typespec modifier to use 128-bit vectors directly in the only two users of this special-case: the vcvt f16 intrinsics. This also lets us use more meaningful prototype modifiers. Modified: cfe/trunk/include/clang/Basic/arm_neon.td cfe/trunk/utils/TableGen/NeonEmitter.cpp Modified: cfe/trunk/include/clang/Basic/arm_neon.td URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/arm_neon.td?rev=245778&r1=245777&r2=245778&view=diff ============================================================================== --- cfe/trunk/include/clang/Basic/arm_neon.td (original) +++ cfe/trunk/include/clang/Basic/arm_neon.td Fri Aug 21 20:30:13 2015 @@ -688,8 +688,8 @@ def VGET_LOW : NoTestOpInst<"vget_low", //////////////////////////////////////////////////////////////////////////////// // E.3.22 Converting vectors -def VCVT_F16_F32 : SInst<"vcvt_f16_f32", "hk", "f">; -def VCVT_F32_F16 : SInst<"vcvt_f32_f16", "fd", "h">; +def VCVT_F16_F32 : SInst<"vcvt_f16_f32", "md", "Hf">; +def VCVT_F32_F16 : SInst<"vcvt_f32_f16", "wd", "h">; def VCVT_S32 : SInst<"vcvt_s32", "xd", "fQf">; def VCVT_U32 : SInst<"vcvt_u32", "ud", "fQf">; @@ -956,7 +956,7 @@ def VCVT_S64 : SInst<"vcvt_s64", "xd", def VCVT_U64 : SInst<"vcvt_u64", "ud", "dQd">; def VCVT_F64 : SInst<"vcvt_f64", "Fd", "lUlQlQUl">; -def VCVT_HIGH_F16_f32 : SOpInst<"vcvt_high_f16", "qhj", "f", OP_VCVT_NA_HI_F16>; +def VCVT_HIGH_F16_F32 : SOpInst<"vcvt_high_f16", "hmj", "Hf", OP_VCVT_NA_HI_F16>; def VCVT_HIGH_F32_F16 : SOpInst<"vcvt_high_f32", "wk", "h", OP_VCVT_EX_HI_F32>; def VCVT_HIGH_F32_F64 : SOpInst<"vcvt_high_f32", "qfj", "d", OP_VCVT_NA_HI_F32>; def VCVT_HIGH_F64_F32 : SOpInst<"vcvt_high_f64", "wj", "f", OP_VCVT_EX_HI_F64>; Modified: cfe/trunk/utils/TableGen/NeonEmitter.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/TableGen/NeonEmitter.cpp?rev=245778&r1=245777&r2=245778&view=diff ============================================================================== --- cfe/trunk/utils/TableGen/NeonEmitter.cpp (original) +++ cfe/trunk/utils/TableGen/NeonEmitter.cpp Fri Aug 21 20:30:13 2015 @@ -837,10 +837,6 @@ void Type::applyModifier(char Mod) { Float = true; break; case 'f': - // Special case - if we're half-precision, a floating - // point argument needs to be 128-bits (double size). - if (isHalf()) - Bitwidth = 128; Float = true; ElementBitwidth = 32; break; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits