On 01/17/2017 01:07 AM, Kirill Batuzov wrote:
#ifdef TCG_TARGET_HAS_REG128 + case INDEX_op_add_i8x16: + tcg_out_modrm(s, OPC_PADDB, args[0], args[2]); + break; + case INDEX_op_add_i16x8: + tcg_out_modrm(s, OPC_PADDW, args[0], args[2]); + break; case INDEX_op_add_i32x4: tcg_out_modrm(s, OPC_PADDD, args[0], args[2]); break; + case INDEX_op_add_i64x2: + tcg_out_modrm(s, OPC_PADDQ, args[0], args[2]); + break; +#endif + +#ifdef TCG_TARGET_HAS_REGV64 + case INDEX_op_add_i8x8: + tcg_out_modrm(s, OPC_PADDB, args[0], args[2]); + break; + case INDEX_op_add_i16x4: + tcg_out_modrm(s, OPC_PADDW, args[0], args[2]); + break; + case INDEX_op_add_i32x2: + tcg_out_modrm(s, OPC_PADDD, args[0], args[2]); + break; + case INDEX_op_add_i64x1: + tcg_out_modrm(s, OPC_PADDQ, args[0], args[2]); + break; #endif
Once you drop the ifdefs, combine the cases. Also: avx1 vpadd*. r~