On Sat, Nov 19, 2016 at 12:28:22PM +0100, Jakub Jelinek wrote:
> On x86_64-linux with the 3 patches I'm not seeing any new FAILs
> compared to before r242569, on i686-linux there is still:
> +FAIL: gcc.target/i386/pr57756.c  (test for errors, line 6)
> +FAIL: gcc.target/i386/pr57756.c  (test for warnings, line 14)
> compared to pre-r242569 (so some further fix is needed).

And finally here is yet another patch that fixes pr57756 on i686-linux.
Ok for trunk together with the other 3 patches?

2016-11-19  Jakub Jelinek  <ja...@redhat.com>

        * config/i386/i386.c (ix86_can_inline_p): Use || instead of &
        when checking if callee's isa flags are subset of caller's isa flags.
        Fix comment wording.

--- gcc/config/i386/i386.c.jj   2016-11-19 18:02:56.000000000 +0100
+++ gcc/config/i386/i386.c      2016-11-19 18:21:23.649463040 +0100
@@ -6981,13 +6981,13 @@ ix86_can_inline_p (tree caller, tree cal
       struct cl_target_option *caller_opts = TREE_TARGET_OPTION (caller_tree);
       struct cl_target_option *callee_opts = TREE_TARGET_OPTION (callee_tree);
 
-      /* Callee's isa options should a subset of the caller's, i.e. a SSE4 
function
-        can inline a SSE2 function but a SSE2 function can't inline a SSE4
-        function.  */
+      /* Callee's isa options should be a subset of the caller's, i.e. a SSE4
+        function can inline a SSE2 function but a SSE2 function can't inline
+        a SSE4 function.  */
       if (((caller_opts->x_ix86_isa_flags & callee_opts->x_ix86_isa_flags)
-         != callee_opts->x_ix86_isa_flags) &
-         ((caller_opts->x_ix86_isa_flags2 & callee_opts->x_ix86_isa_flags2)
-         != callee_opts->x_ix86_isa_flags2))
+          != callee_opts->x_ix86_isa_flags)
+         || ((caller_opts->x_ix86_isa_flags2 & callee_opts->x_ix86_isa_flags2)
+             != callee_opts->x_ix86_isa_flags2))
        ret = false;
 
       /* See if we have the same non-isa options.  */


        Jakub

Reply via email to