This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

target/10177: VRsave mask wrong


>Number:         10177
>Category:       target
>Synopsis:       VRsave mask wrong
>Confidential:   no
>Severity:       critical
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          wrong-code
>Submitter-Id:   net
>Arrival-Date:   Fri Mar 21 02:16:00 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator:     Andrew Pinski
>Release:        gcc version 3.4 20030320 (experimental)
>Organization:
>Environment:
powerpc-apple-darwin6.4
>Description:
The VRsave mask generated for the attached code should 0x80000000 (register v0 is the only vector register used).
int f(int a, int b) {
        if (a<b) {
                vector signed int v1;
                vec_ste(v1, 0, &a);
                return a;
        }
        else {
                return a;
        }
}

instead I get this:
_f:
        mfspr   r5,VRsave
        oris    r2,r5,0xdfff
        stw     r5,0xfff8(r1)
        ori     r0,r2,0xf000
        mtspr   VRsave,r0
        cmpw    r3,r4
        or      r0,r3,r3
        stw     r3,0x18(r1)
        bge     0x34
        li      r4,0x0
        addi    r3,r1,0x18
        stvewx  v0,r4,r3
        lwz     r0,0x18(r1)
        or      r3,r0,r0
        lwz     r6,0xfff8(r1)
        mtspr   VRsave,r6
        blr
>How-To-Repeat:
gcc -O3 -maltivec test.c -include altivec.h -c -Wa,-force_cpusubtype_ALL -v
>Fix:
Do not know.
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="test.c"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="test.c"

aW50IGYoaW50IGEsIGludCBiKSB7CiAgICAgICAgaWYgKGE8YikgewogICAgICAgICAgICAgICAg
dmVjdG9yIHNpZ25lZCBpbnQgdjE7CiAgICAgICAgICAgICAgICB2ZWNfc3RlKHYxLCAwLCAmYSk7
CiAgICAgICAgICAgICAgICByZXR1cm4gYTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAg
ICAgICAgICAgICByZXR1cm4gYTsKICAgICAgICB9Cn0K


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]