------- Additional Comments From hjl at lucon dot org  2005-04-18 21:31 -------
It looks like compare_and_swap gets miscompiled on ia64.
Working

[.LBB173:]
        .loc 7 24 0
        .mmi
        mov ar.ccv = r36
        nop 0
        or r14 = 1, r36
        .mmi
        mf
[.LBE173:]
[.LBE172:]
        .loc 1 945 0
        nop 0
        and r15 = 2, r36
[.LVL85:]
[.LBB174:]
[.LBB175:]
        .loc 7 24 0
        ;;
        .mmi
        nop 0
        cmpxchg8.acq r14 = [r33], r14, ar.ccv
[.LBE175:]
[.LBE174:]
        .loc 1 946 0
        nop 0
        ;;
        .mib
        nop 0
        cmp.eq p6, p7 = r36, r14
        (p6) br.cond.dpnt .L170
.L168:
        .loc 1 949 0
        .mib
        mov r42 = r33
[.LVL86:]
        nop 0
        br.call.sptk.many b0 = _Z13wait_unlockedP10hash_entry#
[.LVL87:]
        ;;

Not working:

[.LBB175:]
        .loc 5 24 0
        .mmi
        mov ar.ccv = r36
        nop 0
        or r14 = 1, r36
        .mmi
        mf
[.LBE175:]
[.LBE174:]
        .loc 1 945 0
        nop 0
        and r42 = 2, r36
[.LVL92:]
[.LBB176:]
[.LBB177:]
        .loc 5 24 0
        ;;
        .mmi
        nop 0
        cmpxchg8.acq r15 = [r33], r14, ar.ccv
[.LBE177:]
[.LBE176:]
        .loc 1 946 0
        nop 0
        ;;
        .mib
        nop 0
        cmp.eq p6, p7 = r14, r15
        (p6) br.cond.dpnt .L172
[.LVL93:]
.L170:
        .loc 1 949 0
        .mib
        mov r42 = r33
[.LVL94:]
        nop 0
        br.call.sptk.many b0 = _Z13wait_unlockedP10hash_entry#
[.LVL95:]
        ;;

-- 


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

Reply via email to