The tester seemed to occasionally ping-pong a compilation failure on the builtin-bitops-1.c test. I long suspected it was something like length computations.

I finally got a few minutes to dig into it, and sure enough the blackfin port was claiming the "ones" operation was 2 bytes when it is in fact 4 bytes.

This fixes the compilation failure for the builtin-bitops-1.c test. Sadly, it doesn't fix any of the other failures on the bfin port.

Committed to the trunk.

Jeff
commit bb095e8a343db043a0cd0b0da9b2ab1186d1a1ed
Author: Jeff Law <j...@ventanamicro.com>
Date:   Sat Jul 22 09:47:21 2023 -0600

    [committed] Fix length computation bug in bfin port
    
    The tester seemed to occasionally ping-pong a compilation failure on the
    builtin-bitops-1.c test.  I long suspected it was something like length
    computations.
    
    I finally got a few minutes to dig into it, and sure enough the blackfin
    port was claiming the "ones" operation was 2 bytes when it is in fact 4 
bytes.
    
    This fixes the compilation failure for the builtin-bitops-1.c test.   Sadly,
    it doesn't fix any of the other failures on the bfin port.
    
    Committed to the trunk.
    
    gcc/
            * config/bfin/bfin.md (ones): Fix length computation.

diff --git a/gcc/config/bfin/bfin.md b/gcc/config/bfin/bfin.md
index 9b5ab071778..c6b174dc3bd 100644
--- a/gcc/config/bfin/bfin.md
+++ b/gcc/config/bfin/bfin.md
@@ -1401,7 +1401,8 @@ (define_insn "ones"
         (popcount:SI (match_operand:SI 1 "register_operand" "d"))))]
   ""
   "%h0 = ONES %1;"
-  [(set_attr "type" "alu0")])
+  [(set_attr "type" "alu0")
+   (set_attr "length" "4")])
 
 (define_expand "popcountsi2"
   [(set (match_dup 2)

Reply via email to