Anton Korobeynikov | c6f729e | 2009-09-18 16:57:42 +0000 | [diff] [blame] | 1 | ; RUN: llc < %s | grep 0x0021 | count 2 |
| 2 | ; PR4776 |
| 3 | target datalayout = "e-p:16:8:8-i8:8:8-i16:8:8-i32:8:8" |
| 4 | target triple = "msp430-unknown-unknown" |
| 5 | |
Anton Korobeynikov | 123ed8f | 2009-11-07 17:13:35 +0000 | [diff] [blame] | 6 | @"\010x0021" = external global i8, align 1 ; <i8*> [#uses=2] |
Anton Korobeynikov | c6f729e | 2009-09-18 16:57:42 +0000 | [diff] [blame] | 7 | |
| 8 | define zeroext i8 @foo(i8 zeroext %x) nounwind { |
| 9 | entry: |
| 10 | %retval = alloca i8 ; <i8*> [#uses=2] |
| 11 | %x.addr = alloca i8 ; <i8*> [#uses=2] |
| 12 | %tmp = alloca i8, align 1 ; <i8*> [#uses=2] |
| 13 | store i8 %x, i8* %x.addr |
| 14 | %tmp1 = volatile load i8* @"\010x0021" ; <i8> [#uses=1] |
| 15 | store i8 %tmp1, i8* %tmp |
| 16 | %tmp2 = load i8* %x.addr ; <i8> [#uses=1] |
| 17 | volatile store i8 %tmp2, i8* @"\010x0021" |
| 18 | %tmp3 = load i8* %tmp ; <i8> [#uses=1] |
| 19 | store i8 %tmp3, i8* %retval |
| 20 | %0 = load i8* %retval ; <i8> [#uses=1] |
| 21 | ret i8 %0 |
| 22 | } |