Tanya Lattner | 6f729d6 | 2008-03-25 04:26:08 +0000 | [diff] [blame^] | 1 | ; RUN: llvm-as < %s | llc -march=ppc32 |
| 2 | ; END. |
Chris Lattner | 83cdf40 | 2006-05-12 16:28:13 +0000 | [diff] [blame] | 3 | |
Tanya Lattner | 6f729d6 | 2008-03-25 04:26:08 +0000 | [diff] [blame^] | 4 | %struct.attr_desc = type { i8*, %struct.attr_desc*, %struct.attr_value*, %struct.attr_value*, i32 } |
| 5 | %struct.attr_value = type { %struct.rtx_def*, %struct.attr_value*, %struct.insn_ent*, i32, i32 } |
| 6 | %struct.insn_def = type { %struct.insn_def*, %struct.rtx_def*, i32, i32, i32, i32, i32 } |
Chris Lattner | 83cdf40 | 2006-05-12 16:28:13 +0000 | [diff] [blame] | 7 | %struct.insn_ent = type { %struct.insn_ent*, %struct.insn_def* } |
Tanya Lattner | 6f729d6 | 2008-03-25 04:26:08 +0000 | [diff] [blame^] | 8 | %struct.rtx_def = type { i16, i8, i8, %struct.u } |
| 9 | %struct.u = type { [1 x i64] } |
Chris Lattner | 83cdf40 | 2006-05-12 16:28:13 +0000 | [diff] [blame] | 10 | |
Tanya Lattner | 6f729d6 | 2008-03-25 04:26:08 +0000 | [diff] [blame^] | 11 | define void @find_attr() { |
Chris Lattner | 83cdf40 | 2006-05-12 16:28:13 +0000 | [diff] [blame] | 12 | entry: |
Tanya Lattner | 6f729d6 | 2008-03-25 04:26:08 +0000 | [diff] [blame^] | 13 | %tmp26 = icmp eq %struct.attr_desc* null, null ; <i1> [#uses=1] |
| 14 | br i1 %tmp26, label %bb30, label %cond_true27 |
Chris Lattner | 83cdf40 | 2006-05-12 16:28:13 +0000 | [diff] [blame] | 15 | cond_true27: ; preds = %entry |
| 16 | ret void |
Chris Lattner | 83cdf40 | 2006-05-12 16:28:13 +0000 | [diff] [blame] | 17 | bb30: ; preds = %entry |
Tanya Lattner | 6f729d6 | 2008-03-25 04:26:08 +0000 | [diff] [blame^] | 18 | %tmp67 = icmp eq %struct.attr_desc* null, null ; <i1> [#uses=1] |
| 19 | br i1 %tmp67, label %cond_next92, label %cond_true68 |
Chris Lattner | 83cdf40 | 2006-05-12 16:28:13 +0000 | [diff] [blame] | 20 | cond_true68: ; preds = %bb30 |
| 21 | ret void |
Chris Lattner | 83cdf40 | 2006-05-12 16:28:13 +0000 | [diff] [blame] | 22 | cond_next92: ; preds = %bb30 |
Tanya Lattner | 6f729d6 | 2008-03-25 04:26:08 +0000 | [diff] [blame^] | 23 | %tmp173 = getelementptr %struct.attr_desc* null, i32 0, i32 4 ; <i32*> [#uses=2] |
| 24 | %tmp174 = load i32* %tmp173 ; <i32> [#uses=1] |
| 25 | %tmp177 = and i32 %tmp174, -9 ; <i32> [#uses=1] |
| 26 | store i32 %tmp177, i32* %tmp173 |
| 27 | %tmp180 = getelementptr %struct.attr_desc* null, i32 0, i32 4 ; <i32*> [#uses=1] |
| 28 | %tmp181 = load i32* %tmp180 ; <i32> [#uses=1] |
| 29 | %tmp185 = getelementptr %struct.attr_desc* null, i32 0, i32 4 ; <i32*> [#uses=2] |
| 30 | %tmp186 = load i32* %tmp185 ; <i32> [#uses=1] |
| 31 | %tmp183187 = shl i32 %tmp181, 1 ; <i32> [#uses=1] |
| 32 | %tmp188 = and i32 %tmp183187, 16 ; <i32> [#uses=1] |
| 33 | %tmp190 = and i32 %tmp186, -17 ; <i32> [#uses=1] |
| 34 | %tmp191 = or i32 %tmp190, %tmp188 ; <i32> [#uses=1] |
| 35 | store i32 %tmp191, i32* %tmp185 |
| 36 | %tmp193 = getelementptr %struct.attr_desc* null, i32 0, i32 4 ; <i32*> [#uses=1] |
| 37 | %tmp194 = load i32* %tmp193 ; <i32> [#uses=1] |
| 38 | %tmp198 = getelementptr %struct.attr_desc* null, i32 0, i32 4 ; <i32*> [#uses=2] |
| 39 | %tmp199 = load i32* %tmp198 ; <i32> [#uses=1] |
| 40 | %tmp196200 = shl i32 %tmp194, 2 ; <i32> [#uses=1] |
| 41 | %tmp201 = and i32 %tmp196200, 64 ; <i32> [#uses=1] |
| 42 | %tmp203 = and i32 %tmp199, -65 ; <i32> [#uses=1] |
| 43 | %tmp204 = or i32 %tmp203, %tmp201 ; <i32> [#uses=1] |
| 44 | store i32 %tmp204, i32* %tmp198 |
| 45 | %tmp206 = getelementptr %struct.attr_desc* null, i32 0, i32 4 ; <i32*> [#uses=1] |
| 46 | %tmp207 = load i32* %tmp206 ; <i32> [#uses=1] |
| 47 | %tmp211 = getelementptr %struct.attr_desc* null, i32 0, i32 4 ; <i32*> [#uses=2] |
| 48 | %tmp212 = load i32* %tmp211 ; <i32> [#uses=1] |
| 49 | %tmp209213 = shl i32 %tmp207, 1 ; <i32> [#uses=1] |
| 50 | %tmp214 = and i32 %tmp209213, 128 ; <i32> [#uses=1] |
| 51 | %tmp216 = and i32 %tmp212, -129 ; <i32> [#uses=1] |
| 52 | %tmp217 = or i32 %tmp216, %tmp214 ; <i32> [#uses=1] |
| 53 | store i32 %tmp217, i32* %tmp211 |
Chris Lattner | 83cdf40 | 2006-05-12 16:28:13 +0000 | [diff] [blame] | 54 | ret void |
| 55 | } |