On Tue, Aug 23, 2011 at 1:07 PM, Kirill Yukhin <kirill.yuk...@gmail.com> wrote: > Hi, > I've slightly updated mulx split to avoid ICE. > Updated patch, ChangeLog entry (with Uros's contribution) and > ChangeLog.testsuite entry are attached. > > Bootstrapped and make-checked. > > Tests all pass under simulator (expept one, but it is simulator issue). > > Uros, you asked if BMI2 is inherited from BMI. The answer is no, these > 2 extensions are not connected. > > Is is OK?
+{ + operands[3] = gen_lowpart (<MODE>mode, operands[0]); + operands[4] = gen_highpart (<MODE>mode, operands[0]); + operands[5] = GEN_INT (GET_MODE_BITSIZE (<MODE>mode)); +}) Please change this part to: { split_double_mode (<DWI>mode, &operands[0], 1, &operands[3], &operands[4]); operands[5] = GEN_INT (GET_MODE_BITSIZE (<MODE>mode)); }) Please also add -mbmi2 to gcc.target/i386/sse-{12,13,14,22,23}.c files. Please also change some entries in the ChangeLog to: * config/i386/i386-c.c (ix86_target_macros_internal): Conditionally define __BMI2__. * config/i386/i386.c (ix86_option_override_internal): Define PTA_BMI2. Handle BMI2 option. (ix86_valid_target_attribute_inner_p): Handle BMI2 option. OK with these changes. Thanks, Uros.