Evan Cheng | 02b985c | 2007-01-19 09:20:23 +0000 | [diff] [blame^] | 1 | ; RUN: llvm-as < %s | llc -march=arm && |
| 2 | ; RUN: llvm-as < %s | llc -march=arm -mattr=+v6 && |
| 3 | ; RUN: llvm-as < %s | llc -march=arm -mattr=+v6 | grep "uxtb" | wc -l | grep 1 && |
| 4 | ; RUN: llvm-as < %s | llc -march=arm -mattr=+v6 | grep "uxtab" | wc -l | grep 1 && |
| 5 | ; RUN: llvm-as < %s | llc -march=arm -mattr=+v6 | grep "uxth" | wc -l | grep 1 |
| 6 | |
| 7 | define i8 %test1(i32 %A.u) zext { |
| 8 | %B.u = trunc i32 %A.u to i8 |
| 9 | ret i8 %B.u |
| 10 | } |
| 11 | |
| 12 | define i32 %test2(i32 %A.u, i32 %B.u) zext { |
| 13 | %C.u = trunc i32 %B.u to i8 |
| 14 | %D.u = zext i8 %C.u to i32 |
| 15 | %E.u = add i32 %A.u, %D.u |
| 16 | ret i32 %E.u |
| 17 | } |
| 18 | |
| 19 | define i32 %test3(i32 %A.u) zext { |
| 20 | %B.u = lshr i32 %A.u, i8 8 |
| 21 | %C.u = shl i32 %A.u, i8 24 |
| 22 | %D.u = or i32 %B.u, %C.u |
| 23 | %E.u = trunc i32 %D.u to i16 |
| 24 | %F.u = zext i16 %E.u to i32 |
| 25 | ret i32 %F.u |
| 26 | } |