1 // 2 // Test mutex relation handling 3 // 4 .text 5 start: 6 // user annotation 7 .pred.rel.mutex p1, p2, p3 8 (p1) mov r4 = 2 9 (p2) mov r4 = 5 10 (p3) mov r4 = 7 11 rfi 12 13 // non-predicated compares generate a mutex 14 cmp.eq p1, p2 = r1, r2;; 15 (p1) mov r4 = 2 16 (p2) mov r4 = 4 17 rfi 18 19 // unconditional compares generate a mutex 20 (p3) cmp.eq.unc p1, p2 = r1, r2;; 21 (p1) mov r4 = 2 22 (p2) mov r4 = 4 23 rfi 24 25 // non-predicated compares don't remove mutex 26 cmp.eq p1, p2 = r1, r2;; 27 (p1) mov r4 = 2 28 (p2) mov r4 = 4 29 rfi 30 31 // predicated compares don't remove mutex 32 (p3) cmp.eq p1, p2 = r1, r2;; 33 (p1) mov r4 = 2 34 (p2) mov r4 = 4 35 rfi 36 L: 37