Hello! > For the define_expand I added as below, the else body is there to > avoid fall-through transformations to ABS operation in optabs.c. > Otherwise ABS will be converted to other operations even that we have > corresponding instructions from SSSE3.
No, it wont be. Fallthrough will generate the pattern that will be matched by the insn pattern above, just like you are doing by hand below. > (define_expand "abs<mode>2" > [(set (match_operand:VI124_AVX2_48_AVX512F 0 "register_operand") > (abs:VI124_AVX2_48_AVX512F > (match_operand:VI124_AVX2_48_AVX512F 1 "nonimmediate_operand")))] > "TARGET_SSE2" > { > if (!TARGET_SSSE3) > ix86_expand_sse2_abs (operands[0], force_reg (<MODE>mode, operands[1])); Do you really need force_reg here? You are using generic expanders in ix86_expand_sse2_abs that can handle non-registers operands just as well. > else > emit_insn (gen_rtx_SET (VOIDmode, operands[0], > gen_rtx_ABS (<MODE>mode, operands[1]))); > DONE; > }) Please note that your mailer mangles indents. Please indent your code correctly. Uros.