Dan Gohman | fce288f | 2009-09-09 00:09:15 +0000 | [diff] [blame] | 1 | ; RUN: llc < %s -march=arm | grep mvn | count 8 |
Rafael Espindola | 450856d | 2006-12-12 00:37:38 +0000 | [diff] [blame] | 2 | |
Tanya Lattner | 6263f94 | 2008-02-17 20:02:20 +0000 | [diff] [blame] | 3 | define i32 @f1() { |
Rafael Espindola | f64945d | 2006-12-12 01:03:11 +0000 | [diff] [blame] | 4 | entry: |
Tanya Lattner | 6263f94 | 2008-02-17 20:02:20 +0000 | [diff] [blame] | 5 | ret i32 -1 |
Rafael Espindola | f64945d | 2006-12-12 01:03:11 +0000 | [diff] [blame] | 6 | } |
Rafael Espindola | 450856d | 2006-12-12 00:37:38 +0000 | [diff] [blame] | 7 | |
Tanya Lattner | 6263f94 | 2008-02-17 20:02:20 +0000 | [diff] [blame] | 8 | define i32 @f2(i32 %a) { |
Rafael Espindola | 450856d | 2006-12-12 00:37:38 +0000 | [diff] [blame] | 9 | entry: |
Tanya Lattner | 6263f94 | 2008-02-17 20:02:20 +0000 | [diff] [blame] | 10 | %tmpnot = xor i32 %a, -1 ; <i32> [#uses=1] |
| 11 | ret i32 %tmpnot |
Rafael Espindola | 450856d | 2006-12-12 00:37:38 +0000 | [diff] [blame] | 12 | } |
| 13 | |
Tanya Lattner | 6263f94 | 2008-02-17 20:02:20 +0000 | [diff] [blame] | 14 | define i32 @f3(i32 %a) { |
Evan Cheng | 02b985c | 2007-01-19 09:20:23 +0000 | [diff] [blame] | 15 | entry: |
Tanya Lattner | 6263f94 | 2008-02-17 20:02:20 +0000 | [diff] [blame] | 16 | %tmp1 = shl i32 %a, 2 ; <i32> [#uses=1] |
| 17 | %tmp1not = xor i32 %tmp1, -1 ; <i32> [#uses=1] |
| 18 | ret i32 %tmp1not |
Evan Cheng | 02b985c | 2007-01-19 09:20:23 +0000 | [diff] [blame] | 19 | } |
Rafael Espindola | 450856d | 2006-12-12 00:37:38 +0000 | [diff] [blame] | 20 | |
Tanya Lattner | 6263f94 | 2008-02-17 20:02:20 +0000 | [diff] [blame] | 21 | define i32 @f4(i32 %a, i8 %b) { |
Rafael Espindola | 450856d | 2006-12-12 00:37:38 +0000 | [diff] [blame] | 22 | entry: |
Tanya Lattner | 6263f94 | 2008-02-17 20:02:20 +0000 | [diff] [blame] | 23 | %shift.upgrd.1 = zext i8 %b to i32 ; <i32> [#uses=1] |
| 24 | %tmp3 = shl i32 %a, %shift.upgrd.1 ; <i32> [#uses=1] |
| 25 | %tmp3not = xor i32 %tmp3, -1 ; <i32> [#uses=1] |
| 26 | ret i32 %tmp3not |
Rafael Espindola | 450856d | 2006-12-12 00:37:38 +0000 | [diff] [blame] | 27 | } |
| 28 | |
Tanya Lattner | 6263f94 | 2008-02-17 20:02:20 +0000 | [diff] [blame] | 29 | define i32 @f5(i32 %a) { |
Evan Cheng | 02b985c | 2007-01-19 09:20:23 +0000 | [diff] [blame] | 30 | entry: |
Tanya Lattner | 6263f94 | 2008-02-17 20:02:20 +0000 | [diff] [blame] | 31 | %tmp1 = lshr i32 %a, 2 ; <i32> [#uses=1] |
| 32 | %tmp1not = xor i32 %tmp1, -1 ; <i32> [#uses=1] |
| 33 | ret i32 %tmp1not |
Evan Cheng | 02b985c | 2007-01-19 09:20:23 +0000 | [diff] [blame] | 34 | } |
Rafael Espindola | 450856d | 2006-12-12 00:37:38 +0000 | [diff] [blame] | 35 | |
Tanya Lattner | 6263f94 | 2008-02-17 20:02:20 +0000 | [diff] [blame] | 36 | define i32 @f6(i32 %a, i8 %b) { |
Rafael Espindola | 450856d | 2006-12-12 00:37:38 +0000 | [diff] [blame] | 37 | entry: |
Tanya Lattner | 6263f94 | 2008-02-17 20:02:20 +0000 | [diff] [blame] | 38 | %shift.upgrd.2 = zext i8 %b to i32 ; <i32> [#uses=1] |
| 39 | %tmp2 = lshr i32 %a, %shift.upgrd.2 ; <i32> [#uses=1] |
| 40 | %tmp2not = xor i32 %tmp2, -1 ; <i32> [#uses=1] |
| 41 | ret i32 %tmp2not |
Rafael Espindola | 450856d | 2006-12-12 00:37:38 +0000 | [diff] [blame] | 42 | } |
| 43 | |
Tanya Lattner | 6263f94 | 2008-02-17 20:02:20 +0000 | [diff] [blame] | 44 | define i32 @f7(i32 %a) { |
Evan Cheng | 02b985c | 2007-01-19 09:20:23 +0000 | [diff] [blame] | 45 | entry: |
Tanya Lattner | 6263f94 | 2008-02-17 20:02:20 +0000 | [diff] [blame] | 46 | %tmp1 = ashr i32 %a, 2 ; <i32> [#uses=1] |
| 47 | %tmp1not = xor i32 %tmp1, -1 ; <i32> [#uses=1] |
| 48 | ret i32 %tmp1not |
Evan Cheng | 02b985c | 2007-01-19 09:20:23 +0000 | [diff] [blame] | 49 | } |
Rafael Espindola | 450856d | 2006-12-12 00:37:38 +0000 | [diff] [blame] | 50 | |
Tanya Lattner | 6263f94 | 2008-02-17 20:02:20 +0000 | [diff] [blame] | 51 | define i32 @f8(i32 %a, i8 %b) { |
Rafael Espindola | 450856d | 2006-12-12 00:37:38 +0000 | [diff] [blame] | 52 | entry: |
Tanya Lattner | 6263f94 | 2008-02-17 20:02:20 +0000 | [diff] [blame] | 53 | %shift.upgrd.3 = zext i8 %b to i32 ; <i32> [#uses=1] |
| 54 | %tmp3 = ashr i32 %a, %shift.upgrd.3 ; <i32> [#uses=1] |
| 55 | %tmp3not = xor i32 %tmp3, -1 ; <i32> [#uses=1] |
| 56 | ret i32 %tmp3not |
Rafael Espindola | 450856d | 2006-12-12 00:37:38 +0000 | [diff] [blame] | 57 | } |
Rafael Espindola | 2426775 | 2006-12-12 14:03:29 +0000 | [diff] [blame] | 58 | |
Tanya Lattner | 6263f94 | 2008-02-17 20:02:20 +0000 | [diff] [blame] | 59 | define i32 @f9() { |
Rafael Espindola | 2426775 | 2006-12-12 14:03:29 +0000 | [diff] [blame] | 60 | entry: |
Tanya Lattner | 6263f94 | 2008-02-17 20:02:20 +0000 | [diff] [blame] | 61 | %tmp4845 = add i32 0, 0 ; <i32> [#uses=1] |
| 62 | br label %cond_true4848 |
Rafael Espindola | 2426775 | 2006-12-12 14:03:29 +0000 | [diff] [blame] | 63 | |
Tanya Lattner | 6263f94 | 2008-02-17 20:02:20 +0000 | [diff] [blame] | 64 | cond_true4848: ; preds = %entry |
| 65 | %tmp4851 = sub i32 -3, 0 ; <i32> [#uses=1] |
| 66 | %abc = add i32 %tmp4851, %tmp4845 ; <i32> [#uses=1] |
| 67 | ret i32 %abc |
Rafael Espindola | 2426775 | 2006-12-12 14:03:29 +0000 | [diff] [blame] | 68 | } |
Rafael Espindola | a898ce6 | 2006-12-12 17:10:13 +0000 | [diff] [blame] | 69 | |
Tanya Lattner | 6263f94 | 2008-02-17 20:02:20 +0000 | [diff] [blame] | 70 | define i1 @f10(i32 %a) { |
Rafael Espindola | a898ce6 | 2006-12-12 17:10:13 +0000 | [diff] [blame] | 71 | entry: |
Tanya Lattner | 6263f94 | 2008-02-17 20:02:20 +0000 | [diff] [blame] | 72 | %tmp102 = icmp eq i32 -2, %a ; <i1> [#uses=1] |
| 73 | ret i1 %tmp102 |
Rafael Espindola | a898ce6 | 2006-12-12 17:10:13 +0000 | [diff] [blame] | 74 | } |