+2011-08-22 Uros Bizjak <ubizjak@gmail.com>
+ Kirill Yukhin <kirill.yukhin@intel.com>
+
+ PR target/50155
+ * config/i386/sse.md (VI_AVX2): New.
+ (<plusminus_insn><mode>3): Use VI_AVX2 mode iterator.
+ (*<plusminus_insn><mode>3): Ditto.
+ (<sse2_avx2>_andnot<mode>3): Ditto.
+ (*andnot<mode>3): Fix order of cond operands.
+ Add asserts for correct TARGET_xxx.
+ (*<any_logic:code><mode>3): Ditto.
+
+2011-08-22 Anatoly Sokolov <aesok@post.ru>
+
+ * config/m32c/m32c.h (CLASS_MAX_NREGS): Remove macro.
+ * config/m32c/m32c-protos.h (m32c_class_max_nregs): Remove.
+ * config/m32c/m32c.c (m32c_class_max_nregs): Make static. Change
+ regclass argument type to reg_class_t. Change 'max' and 'v' vars
+ and return types to unsigned char. Use reg_class_contents instead
+ of class_contents.
+ (TARGET_CLASS_MAX_NREGS): Define.
+
2011-08-22 Bernd Schmidt <bernds@codesourcery.com>
* config/c6x/c6x.md (indirect_jump_shadow): Tweak representation
* config/i386/immintrin.h: Include avx2intrin.h when __AVX2__
is defined.
* config/i386/predicates.md (const1248_operand): New.
- * config/i386/sse.md (VI_AVX2): New mode iterator.
- (VI1_AVX2): Likewise.
+ * config/i386/sse.md (VI1_AVX2): New mode iterator.
(VI2_AVX2): Likewise.
(VI4_AVX2): Likewise.
(VI8_AVX2): Likewise.
(*avx2_gatherdi<mode>): Likewise.
(avx2_gatherdi<mode>256): Likewise.
(*avx2_gatherdi<mode>256): Likewise.
- (*<plusminus_insn><mode>3): Update for AVX2.
+ (<plusminus_insn><mode>3): Use VI mode iterator.
+ (*<plusminus_insn><mode>3): Use VI mode iterator.
(<sse2_avx2>_<plusminus_insn><mode>3): Rename from
sse2_<plusminus_insn><mode>3. Use VI12_AVX2 mode iterator.
(*<sse2_avx2>_<plusminus_insn><mode>3): Rename from
*sse2_<plusminus_insn><mode>3. Use VI12_AVX2 mode iterator.
- (mul<mode>3): Rename from mulv8hi3. Use VI4_AVX2 mode iterator.
- (*mul<mode>3): Rename from *mulv8hi3. Use VI4_AVX2 mode iterator.
- Update for VI2_AVX2.
+ (mul<mode>3): Rename from mulv8hi3. Use VI2_AVX2 mode iterator.
+ (*mul<mode>3): Rename from *mulv8hi3. Use VI2_AVX2 mode iterator.
(<s>mul<mode>3_highpart): Rename from <s>mulv8hi3_highpart.
Use VI2_AVX2 mode iterator.
(*<s>mul<mode>3_highpart): Rename from *<s>mulv8hi3_highpart.
- Use VI2_AVX2 mode iterator. Update for AVX2.
- (*sse4_1_mulv2siv2di3): Update for AVX2.
- (ashr<mode>3): Use VI24_AVX2 mode iterator. Update for AVX2.
- (lshr<mode>3): Use VI248_AVX2 mode iterator. Update for AVX2.
- (<sse2_avx2>_ashl<mode>3): Rename from sse2_ashlv1ti3. Use VIMAX_AVX2
- mode iterator. Update for AVX2.
- (<sse2_avx2>_andnot<mode>3): Rename from sse2_andnot<mode>3. Use VI
- mode iterator.
- (*andnot<mode>3): Likewise. Update for AVX2.
- (<any_logic:code><mode>3): Use VI mode iterator.
- (*<any_logic:code><mode>3): Likewise. Update for AVX2.
+ Use VI2_AVX2 mode iterator.
+ (mul<mode>3): Rename from mulv4si3. Use VI4_AVX2 mode iterator.
+ (*mul<mode>3): Rename from *mulv4si3. Use VI4_AVX2 mode iterator.
+ (*<sse4_1_avx2>_mulv2siv2di3): Rename from *sse4_1_mulv4si3.
+ Use VI4_AVX2 mode iterator.
+ (ashr<mode>3): Use VI24_AVX2 mode iterator.
+ (lshr<mode>3): Use VI248_AVX2 mode iterator.
+ (<sse2_avx2>_ashl<mode>3): Rename from sse2_ashlv1ti3.
+ Use VIMAX_AVX2 mode iterator.
+ (<sse2_avx2>_andnot<mode>3): Rename from sse2_andnot<mode>3.
+ Use VI mode iterator.
+ (*andnot<mode>3): Update for AVX2.
+ (*<any_logic:code><mode>3): Likewise.
(<sse2_avx2>_packsswb): Rename from sse2_packsswb.
- Use VI1_AVX mode iterator. Update for AVX2.
+ Use VI1_AVX mode iterator.
(<sse2_avx2>_packssdw): Rename from sse2_packssdw.
- Use VI2_AVX mode iterator. Update for AVX2.
+ Use VI2_AVX mode iterator.
(<sse2_avx2>_packuswb): Rename from sse2_packsswb.
- Use VI1_AVX mode iterator. Update for AVX2.
- (<sse2_avx2>_psadbw): Rename from sse2_psadbw. Use VI8_AVX2
- mode iterator. Update for AVX2.
- (<ssse3_avx2>_pshufb<mode>3): Rename from ssse3_pshufbv16qi3. Use
- Vi1_AVX2 mode iterator. Update for AVX2.
- (<ssse3_avx2>_psign<mode>3): Rename from ssse3_psign<mode>3. Use
- VI124_AVX2 mode iterator. Update for AVX2.
- (<ssse3_avx2>_palignr<mode>): Rename from ssse3_palignrti. Use
- SSESCALARMODE mode iterator. Update for AVX2.
- (abs<mode>2): Use VI124_AVX2 mode iterator. Update for AVX2.
- (<sse4_1_avx2>_movntdqa): Rename from sse4_1_movntdqa. Use VI8_AVX2
- mode iterator. Update for AVX2.
- (<sse4_1_avx2>_mpsadbw): Rename from sse4_1_mpsadbw. Use VI1_AVX2
- mode iterator. Update for AVX2.
- (<sse4_1_avx2>_pblendvb): Rename from sse4_1_pblendvb. Use VI1_AVX2
- mode iterator. Update for AVX2.
- (<sse4_1_avx2>_pblendw): Rename from sse4_1_pblendvb. Use VI2_AVX2
- mode iterator. Update for AVX2.
+ Use VI1_AVX mode iterator.
+ (<sse2_avx2>_psadbw): Rename from sse2_psadbw.
+ Use VI8_AVX2 mode iterator.
+ (<ssse3_avx2>_pshufb<mode>3): Rename from ssse3_pshufbv16qi3.
+ Use VI1_AVX2 mode iterator.
+ (<ssse3_avx2>_psign<mode>3): Rename from ssse3_psign<mode>3.
+ Use VI124_AVX2 mode iterator.
+ (<ssse3_avx2>_palignr<mode>): Rename from ssse3_palignrti.
+ Use SSESCALARMODE mode iterator.
+ (abs<mode>2): Use VI124_AVX2 mode iterator.
+ (<sse4_1_avx2>_movntdqa): Rename from sse4_1_movntdqa.
+ Use VI8_AVX2 mode iterator.
+ (<sse4_1_avx2>_mpsadbw): Rename from sse4_1_mpsadbw.
+ Use VI1_AVX2 mode iterator.
+ (<sse4_1_avx2>_pblendvb): Rename from sse4_1_pblendvb.
+ Use VI1_AVX2 mode iterator.
+ (<sse4_1_avx2>_pblendw): Rename from sse4_1_pblendvb.
+ Use VI2_AVX2 mode iterator.
(<avx_avx2>_maskload<avx2modesuffix><avxmodesuffix>): Rename from
- avx_maskload<ssemodesuffix><avxsizesuffix>. Use VI48_AVX2
- mode iterator.
+ avx_maskload<ssemodesuffix><avxsizesuffix>. Use V48_AVX2 mode iterator.
(<avx_avx2>_maskstore<avx2modesuffix><avxmodesuffix>): Rename from
- avx_maskstore<ssemodesuffix><avxsizesuffix>. Use VI48_AVX2
- mode iterator.
+ avx_maskstore<ssemodesuffix><avxsizesuffix>.
+ Use V48_AVX2 mode iterator.
* doc/extend.texi: Document AVX2 built-in functions.
* doc/invoke.texi: Document -mavx2.