| # RUN: llc %s -mattr=+fix-tn0010 -mtriple=sparc -run-pass=errata-workaround -o - \ | |
| # RUN: | FileCheck %s | |
| --- | |
| # CHECK: LDrr | |
| # CHECK-NEXT: NOP | |
| # CHECK-NEXT: CASArr | |
| # CHECK: LDrr | |
| # CHECK-NEXT: NOP | |
| # CHECK-NEXT: SWAPrr | |
| # CHECK: LDrr | |
| # CHECK-NEXT: NOP | |
| # CHECK-NEXT: SWAPri | |
| # CHECK: LDrr | |
| # CHECK-NEXT: NOP | |
| # CHECK-NEXT: LDSTUBrr | |
| # CHECK: LDrr | |
| # CHECK-NEXT: NOP | |
| # CHECK-NEXT: LDSTUBri | |
| # CHECK: LDrr | |
| # CHECK-NEXT: NOP | |
| # CHECK-NEXT: LDSTUBArr | |
| name: er-5-1 | |
| registers: | |
| - { id: 0, class: intregs } | |
| body: | | |
| bb.0.entry: | |
| %0 = LDrr $o0, $g0 | |
| %0 = CASArr $o2, $o3, %0, 10 | |
| %0 = LDrr $g0, $o0 | |
| %0 = SWAPrr $o2, $o3, %0 | |
| %0 = LDrr $g0, $o0 | |
| %0 = SWAPri $o2, 10, %0 | |
| %0 = LDrr $g0, $o0 | |
| %0 = LDSTUBrr $o2, $o3 | |
| %0 = LDrr $g0, $o0 | |
| %0 = LDSTUBri $o2, 10 | |
| %0 = LDrr $g0, $o0 | |
| %0 = LDSTUBArr $o2, $o3, 10 | |
| --- | |
| # CHECK: bb.2: | |
| # CHECK-NEXT: NOP | |
| # CHECK-NEXT: CASArr | |
| name: er-5-2 | |
| registers: | |
| - { id: 0, class: intregs } | |
| body: | | |
| bb.0.entry: | |
| successors: %bb.1, %bb.2 | |
| BCOND %bb.2, 10, implicit $icc { | |
| %0 = LDrr $g0, $o0 | |
| } | |
| bb.1.entry: | |
| successors: %bb.2 | |
| NOP | |
| bb.2: | |
| %0 = CASArr $o1, $o2, %0, 10 | |
| --- | |
| # CHECK: bb.0.entry: | |
| # CHECK-NEXT: NOP | |
| # CHECK-NEXT: CASArr | |
| name: er-5-3 | |
| registers: | |
| - { id: 0, class: intregs } | |
| body: | | |
| bb.0.entry: | |
| %0 = CASArr $o1, $o2, %0, 10 | |
| --- | |
| # CHECK: bb.1.entry: | |
| # CHECK: NOP | |
| # CHECK-NEXT: CASArr | |
| name: er-5-4 | |
| registers: | |
| - { id: 0, class: intregs } | |
| body: | | |
| bb.0.entry: | |
| successors: %bb.1, %bb.2 | |
| BCOND %bb.2, 10, implicit $icc { | |
| %0 = LDrr $g0, $o0 | |
| } | |
| bb.1.entry: | |
| successors: %bb.2 | |
| %0 = CASArr $o1, $o2, %0, 10 | |
| bb.2: | |
| NOP | |
| ... |