diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 00b1e5ad16a..a0526f211b5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +2014-05-06 Joseph Myers + + * config/i386/sse.md (*mov_internal) + (*_loadu) + (*_loaddqu) + (_andnot3, 3, *andnot3) + (*3, *andnot3) + (3): Only consider + TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL for modes of size 16. + 2014-05-06 Richard Sandiford Revert: diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md index 72a4d6d0788..c91626bac19 100644 --- a/gcc/config/i386/sse.md +++ b/gcc/config/i386/sse.md @@ -758,11 +758,10 @@ [(set_attr "type" "sselog1,ssemov,ssemov") (set_attr "prefix" "maybe_vex") (set (attr "mode") - (cond [(match_test "TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL") - (const_string "") - (and (match_test " == 16") - (and (eq_attr "alternative" "2") - (match_test "TARGET_SSE_TYPELESS_STORES"))) + (cond [(and (match_test " == 16") + (ior (match_test "TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL") + (and (eq_attr "alternative" "2") + (match_test "TARGET_SSE_TYPELESS_STORES")))) (const_string "") (match_test "TARGET_AVX") (const_string "") @@ -967,7 +966,8 @@ (set_attr "ssememalign" "8") (set_attr "prefix" "maybe_vex") (set (attr "mode") - (cond [(match_test "TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL") + (cond [(and (match_test " == 16") + (match_test "TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL")) (const_string "") (match_test "TARGET_AVX") (const_string "") @@ -1089,7 +1089,8 @@ (const_string "1"))) (set_attr "prefix" "maybe_vex") (set (attr "mode") - (cond [(match_test "TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL") + (cond [(and (match_test " == 16") + (match_test "TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL")) (const_string "") (match_test "TARGET_AVX") (const_string "") @@ -2377,7 +2378,8 @@ (set_attr "type" "sselog") (set_attr "prefix" "orig,maybe_evex") (set (attr "mode") - (cond [(match_test "TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL") + (cond [(and (match_test " == 16") + (match_test "TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL")) (const_string "") (match_test "TARGET_AVX") (const_string "") @@ -2449,7 +2451,8 @@ (set_attr "type" "sselog") (set_attr "prefix" "orig,maybe_evex") (set (attr "mode") - (cond [(match_test "TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL") + (cond [(and (match_test " == 16") + (match_test "TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL")) (const_string "") (match_test "TARGET_AVX") (const_string "") @@ -2513,7 +2516,8 @@ (set_attr "type" "sselog") (set_attr "prefix" "orig,vex") (set (attr "mode") - (cond [(match_test "TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL") + (cond [(and (match_test " == 16") + (match_test "TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL")) (const_string "V4SF") (match_test "TARGET_AVX") (const_string "") @@ -2600,7 +2604,8 @@ (set_attr "type" "sselog") (set_attr "prefix" "orig,vex") (set (attr "mode") - (cond [(match_test "TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL") + (cond [(and (match_test " == 16") + (match_test "TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL")) (const_string "V4SF") (match_test "TARGET_AVX") (const_string "") @@ -9047,7 +9052,8 @@ (const_string "*"))) (set_attr "prefix" "") (set (attr "mode") - (cond [(match_test "TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL") + (cond [(and (match_test " == 16") + (match_test "TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL")) (const_string "") (match_test "TARGET_AVX2") (const_string "") @@ -9140,7 +9146,8 @@ (const_string "*"))) (set_attr "prefix" "") (set (attr "mode") - (cond [(match_test "TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL") + (cond [(and (match_test " == 16") + (match_test "TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL")) (const_string "") (match_test "TARGET_AVX2") (const_string "")