------- Comment #2 from brian dot e dot bliss at intel dot com  2007-11-09 
00:06 -------
Subject: RE:  Bogus codegen for openmp atomics w/ indirects operands on IPF

The C example looks correct (but you have to use the += operator to get
a legal example, which might have affected things):

% cat foo.c
void foo(float *lhs, float*rhs) {
#pragma omp atomic
  *lhs += *rhs;
}
% gcc -fopenmp -O1 -S foo.c
% cat foo.s
        .file   "foo.c"
        .pred.safe_across_calls p1-p5,p16-p63
        .text
        .align 16
        .global foo#
        .proc foo#
foo:
        .prologue
        .body
        ldfs f6 = [r33]
        ld4 r15 = [r32]
        ;;
        mov r16 = r15
.L2:
        setf.s f7 = r15
        ;;
        fadd.s f7 = f7, f6
        ;;
        getf.s r15 = f7
        addp4 r14 = r16, r0
        ;;
        mov ar.ccv = r14
        mf
        ;;
        cmpxchg4.rel r17 = [r32], r15, ar.ccv
        ;;
        mov r15 = r17
        cmp4.eq p6, p7 = r17, r16
        (p6) br.ret.dpnt.many rp
        mov r16 = r17
        br .L2
        ;;
        .endp foo#
        .ident  "GCC: (GNU) 4.2.0"

-bb

-----Original Message-----
From: fxcoudert at gcc dot gnu dot org [mailto:[EMAIL PROTECTED]

Sent: Thursday, November 08, 2007 6:50 AM
To: Bliss, Brian E
Subject: [Bug fortran/34020] Bogus codegen for openmp atomics w/
indirects operands on IPF



------- Comment #1 from fxcoudert at gcc dot gnu dot org  2007-11-08
12:49 -------
Does the same thing happen with C?

void foo(float *lhs, float*rhs) {
#pragma omp atomic
  *lhs = *rhs + *lhs;
}


-- 

fxcoudert at gcc dot gnu dot org changed:

           What    |Removed                     |Added
------------------------------------------------------------------------
----
                 CC|                            |fxcoudert at gcc dot
gnu dot
                   |                            |org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34020

------- You are receiving this mail because: -------
You reported the bug, or are watching the reporter.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34020

Reply via email to