2019-09-18 H.J. Lu <hongjiu.lu@intel.com>
+ PR target/90878
+ * config/i386/x86-tune-costs.h (skylake_cost): Restore SImode
+ hard register store cost to 6.
+
+2019-09-18 H.J. Lu <hongjiu.lu@intel.com>
+
PR target/91446
* config/i386/x86-tune-costs.h (skylake_cost): Increase SImode
pseudo register store cost from 3 to 6 to make it the same as
{4, 4, 4}, /* cost of loading integer registers
in QImode, HImode and SImode.
Relative to reg-reg move (2). */
- {6, 6, 3}, /* cost of storing integer registers */
+ {6, 6, 6}, /* cost of storing integer registers */
2, /* cost of reg,reg fld/fst */
{6, 6, 8}, /* cost of loading fp registers
in SFmode, DFmode and XFmode */
2019-09-18 H.J. Lu <hongjiu.lu@intel.com>
+ PR target/90878
+ * gcc.target/i386/pr90878.c: New test.
+
+2019-09-18 H.J. Lu <hongjiu.lu@intel.com>
+
PR target/91446
* gcc.target/i386/pr91446.c: New test.
--- /dev/null
+/* { dg-do compile } */
+/* { dg-options "-O2 -march=skylake" } */
+
+union ieee754_float
+ {
+ float f;
+
+ struct
+ {
+ unsigned int mantissa:23;
+ unsigned int exponent:8;
+ unsigned int negative:1;
+ } ieee;
+};
+
+double
+foo (float f)
+{
+ union ieee754_float u;
+ u.f = f;
+ u.ieee.negative = 0;
+ return u.f;
+}
+
+/* { dg-final { scan-assembler-not "vcvtss2sd\[^\\n\]*\\\(%.sp\\\)" } } */