Chris Lattner | 49bb78c | 2006-10-28 17:04:16 +0000 | [diff] [blame] | 1 | ; PR925 |
Reid Spencer | 97e287e | 2007-04-15 20:48:50 +0000 | [diff] [blame] | 2 | ; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 | \ |
Dan Gohman | 28beeea | 2007-08-15 13:36:28 +0000 | [diff] [blame] | 3 | ; RUN: grep mov.*str1 | count 1 |
Chris Lattner | 49bb78c | 2006-10-28 17:04:16 +0000 | [diff] [blame] | 4 | |
| 5 | target endian = little |
| 6 | target pointersize = 32 |
| 7 | target triple = "i686-apple-darwin8.7.2" |
| 8 | %str1 = internal constant [5 x sbyte] c"bonk\00" ; <[5 x sbyte]*> [#uses=1] |
| 9 | %str2 = internal constant [5 x sbyte] c"bork\00" ; <[5 x sbyte]*> [#uses=1] |
| 10 | %str = internal constant [8 x sbyte] c"perfwap\00" ; <[8 x sbyte]*> [#uses=1] |
| 11 | |
| 12 | implementation ; Functions: |
| 13 | |
| 14 | void %foo(int %C) { |
| 15 | entry: |
| 16 | switch int %C, label %bb2 [ |
| 17 | int 1, label %blahaha |
| 18 | int 2, label %blahaha |
| 19 | int 3, label %blahaha |
| 20 | int 4, label %blahaha |
| 21 | int 5, label %blahaha |
| 22 | int 6, label %blahaha |
| 23 | int 7, label %blahaha |
| 24 | int 8, label %blahaha |
| 25 | int 9, label %blahaha |
| 26 | int 10, label %blahaha |
| 27 | ] |
| 28 | |
| 29 | bb2: ; preds = %entry |
| 30 | %tmp5 = and int %C, 123 ; <int> [#uses=1] |
| 31 | %tmp = seteq int %tmp5, 0 ; <bool> [#uses=1] |
| 32 | br bool %tmp, label %blahaha, label %cond_true |
| 33 | |
| 34 | cond_true: ; preds = %bb2 |
| 35 | br label %blahaha |
| 36 | |
| 37 | blahaha: ; preds = %cond_true, %bb2, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry |
| 38 | %s.0 = phi sbyte* [ getelementptr ([8 x sbyte]* %str, int 0, uint 0), %cond_true ], [ getelementptr ([5 x sbyte]* %str1, int 0, uint 0), %entry ], [ getelementptr ([5 x sbyte]* %str1, int 0, uint 0), %entry ], [ getelementptr ([5 x sbyte]* %str1, int 0, uint 0), %entry ], [ getelementptr ([5 x sbyte]* %str1, int 0, uint 0), %entry ], [ getelementptr ([5 x sbyte]* %str1, int 0, uint 0), %entry ], [ getelementptr ([5 x sbyte]* %str1, int 0, uint 0), %entry ], [ getelementptr ([5 x sbyte]* %str1, int 0, uint 0), %entry ], [ getelementptr ([5 x sbyte]* %str1, int 0, uint 0), %entry ], [ getelementptr ([5 x sbyte]* %str1, int 0, uint 0), %entry ], [ getelementptr ([5 x sbyte]* %str1, int 0, uint 0), %entry ], [ getelementptr ([5 x sbyte]* %str2, int 0, uint 0), %bb2 ] ; <sbyte*> [#uses=13] |
| 39 | %tmp8 = tail call int (sbyte*, ...)* %printf( sbyte* %s.0 ) ; <int> [#uses=0] |
| 40 | %tmp10 = tail call int (sbyte*, ...)* %printf( sbyte* %s.0 ) ; <int> [#uses=0] |
| 41 | %tmp12 = tail call int (sbyte*, ...)* %printf( sbyte* %s.0 ) ; <int> [#uses=0] |
| 42 | %tmp14 = tail call int (sbyte*, ...)* %printf( sbyte* %s.0 ) ; <int> [#uses=0] |
| 43 | %tmp16 = tail call int (sbyte*, ...)* %printf( sbyte* %s.0 ) ; <int> [#uses=0] |
| 44 | %tmp18 = tail call int (sbyte*, ...)* %printf( sbyte* %s.0 ) ; <int> [#uses=0] |
| 45 | %tmp20 = tail call int (sbyte*, ...)* %printf( sbyte* %s.0 ) ; <int> [#uses=0] |
| 46 | %tmp22 = tail call int (sbyte*, ...)* %printf( sbyte* %s.0 ) ; <int> [#uses=0] |
| 47 | %tmp24 = tail call int (sbyte*, ...)* %printf( sbyte* %s.0 ) ; <int> [#uses=0] |
| 48 | %tmp26 = tail call int (sbyte*, ...)* %printf( sbyte* %s.0 ) ; <int> [#uses=0] |
| 49 | %tmp28 = tail call int (sbyte*, ...)* %printf( sbyte* %s.0 ) ; <int> [#uses=0] |
| 50 | %tmp30 = tail call int (sbyte*, ...)* %printf( sbyte* %s.0 ) ; <int> [#uses=0] |
| 51 | %tmp32 = tail call int (sbyte*, ...)* %printf( sbyte* %s.0 ) ; <int> [#uses=0] |
| 52 | ret void |
| 53 | } |
| 54 | |
| 55 | declare int %printf(sbyte*, ...) |