> This cannot happen, we reject code that sets both __HLE* flags. Good thanks.
BTW I found more HLE bugs, it looks like some of the fetch_op_* patterns do not match always and fall back to cmpxchg, which does not generate HLE code correctly. Not fully sure what's wrong, can you spot any obvious problems? You changed the (define_insn "atomic_<logic><mode>" pattern last. The only one that should really fallback to cmpxchg is nand, all the others can be generated directly. This can be seen by commenting in the #if 0 case in the libstdc++ HLE patch test case I sent yesterday. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55966 -Andi