| OLD | NEW |
| 1 ; Test handling of constants in function blocks. | 1 ; Test handling of constants in function blocks. |
| 2 | 2 |
| 3 ; RUN: llvm-as < %s | pnacl-freeze \ | 3 ; RUN: llvm-as < %s | pnacl-freeze -allow-local-symbol-tables \ |
| 4 ; RUN: | %llvm2ice -notranslate -verbose=inst -build-on-read \ | 4 ; RUN: | %llvm2ice -notranslate -verbose=inst -build-on-read \ |
| 5 ; RUN: -allow-pnacl-reader-error-recovery \ | 5 ; RUN: -allow-pnacl-reader-error-recovery \ |
| 6 ; RUN: -allow-local-symbol-tables \ |
| 6 ; RUN: | FileCheck %s | 7 ; RUN: | FileCheck %s |
| 7 | 8 |
| 8 define void @TestIntegers() { | 9 define void @TestIntegers() { |
| 9 ; CHECK: __0: | 10 entry: |
| 11 ; CHECK: entry: |
| 10 | 12 |
| 11 ; Test various sized integers | 13 ; Test various sized integers |
| 12 %v0 = or i1 true, false | 14 %v0 = or i1 true, false |
| 13 ; CHECK-NEXT: %__0 = or i1 true, false | 15 ; CHECK-NEXT: %v0 = or i1 true, false |
| 14 | 16 |
| 15 %v1 = add i8 0, 0 | 17 %v1 = add i8 0, 0 |
| 16 ; CHECK-NEXT: %__1 = add i8 0, 0 | 18 ; CHECK-NEXT: %v1 = add i8 0, 0 |
| 17 | 19 |
| 18 %v2 = add i8 5, 0 | 20 %v2 = add i8 5, 0 |
| 19 ; CHECK-NEXT: %__2 = add i8 5, 0 | 21 ; CHECK-NEXT: %v2 = add i8 5, 0 |
| 20 | 22 |
| 21 %v3 = add i8 -5, 0 | 23 %v3 = add i8 -5, 0 |
| 22 ; CHECK-NEXT: %__3 = add i8 -5, 0 | 24 ; CHECK-NEXT: %v3 = add i8 -5, 0 |
| 23 | 25 |
| 24 %v4 = and i16 10, 0 | 26 %v4 = and i16 10, 0 |
| 25 ; CHECK-NEXT: %__4 = and i16 10, 0 | 27 ; CHECK-NEXT: %v4 = and i16 10, 0 |
| 26 | 28 |
| 27 %v5 = add i16 -10, 0 | 29 %v5 = add i16 -10, 0 |
| 28 ; CHECK-NEXT: %__5 = add i16 -10, 0 | 30 ; CHECK-NEXT: %v5 = add i16 -10, 0 |
| 29 | 31 |
| 30 %v6 = add i32 20, 0 | 32 %v6 = add i32 20, 0 |
| 31 ; CHECK-NEXT: %__6 = add i32 20, 0 | 33 ; CHECK-NEXT: %v6 = add i32 20, 0 |
| 32 | 34 |
| 33 %v7 = add i32 -20, 0 | 35 %v7 = add i32 -20, 0 |
| 34 ; CHECK-NEXT: %__7 = add i32 -20, 0 | 36 ; CHECK-NEXT: %v7 = add i32 -20, 0 |
| 35 | 37 |
| 36 %v8 = add i64 30, 0 | 38 %v8 = add i64 30, 0 |
| 37 ; CHECK-NEXT: %__8 = add i64 30, 0 | 39 ; CHECK-NEXT: %v8 = add i64 30, 0 |
| 38 | 40 |
| 39 %v9 = add i64 -30, 0 | 41 %v9 = add i64 -30, 0 |
| 40 ; CHECK-NEXT: %__9 = add i64 -30, 0 | 42 ; CHECK-NEXT: %v9 = add i64 -30, 0 |
| 41 | 43 |
| 42 ; Test undefined integer values. | 44 ; Test undefined integer values. |
| 43 %v10 = xor i1 undef, false | 45 %v10 = xor i1 undef, false |
| 44 ; CHECK-NEXT: %__10 = xor i1 undef, false | 46 ; CHECK-NEXT: %v10 = xor i1 undef, false |
| 45 | 47 |
| 46 %v11 = add i8 undef, 0 | 48 %v11 = add i8 undef, 0 |
| 47 ; CHECK-NEXT: %__11 = add i8 undef, 0 | 49 ; CHECK-NEXT: %v11 = add i8 undef, 0 |
| 48 | 50 |
| 49 %v12 = add i16 undef, 0 | 51 %v12 = add i16 undef, 0 |
| 50 ; CHECK-NEXT: %__12 = add i16 undef, 0 | 52 ; CHECK-NEXT: %v12 = add i16 undef, 0 |
| 51 | 53 |
| 52 %v13 = add i32 undef, 0 | 54 %v13 = add i32 undef, 0 |
| 53 ; CHECK-NEXT: %__13 = add i32 undef, 0 | 55 ; CHECK-NEXT: %v13 = add i32 undef, 0 |
| 54 | 56 |
| 55 %v14 = add i64 undef, 0 | 57 %v14 = add i64 undef, 0 |
| 56 ; CHECK-NEXT: %__14 = add i64 undef, 0 | 58 ; CHECK-NEXT: %v14 = add i64 undef, 0 |
| 57 | 59 |
| 58 ret void | 60 ret void |
| 59 ; CHECK-NEXT: ret void | 61 ; CHECK-NEXT: ret void |
| 60 | 62 |
| 61 } | 63 } |
| 62 | 64 |
| 63 define void @TestFloats() { | 65 define void @TestFloats() { |
| 64 ; CHECK: __0: | 66 entry: |
| 67 ; CHECK: entry: |
| 65 | 68 |
| 66 ; Test float and double constants | 69 ; Test float and double constants |
| 67 %v0 = fadd float 1.0, 0.0 | 70 %v0 = fadd float 1.0, 0.0 |
| 68 ; CHECK-NEXT: %__0 = fadd float 1.000000e+00, 0.000000e+00 | 71 ; CHECK-NEXT: %v0 = fadd float 1.000000e+00, 0.000000e+00 |
| 69 | 72 |
| 70 %v1 = fadd double 1.0, 0.0 | 73 %v1 = fadd double 1.0, 0.0 |
| 71 ; CHECK-NEXT: %__1 = fadd double 1.000000e+00, 0.000000e+00 | 74 ; CHECK-NEXT: %v1 = fadd double 1.000000e+00, 0.000000e+00 |
| 72 | 75 |
| 73 %v2 = fsub float 7.000000e+00, 8.000000e+00 | 76 %v2 = fsub float 7.000000e+00, 8.000000e+00 |
| 74 ; CHECK-NEXT: %__2 = fsub float 7.000000e+00, 8.000000e+00 | 77 ; CHECK-NEXT: %v2 = fsub float 7.000000e+00, 8.000000e+00 |
| 75 | 78 |
| 76 %v3 = fsub double 5.000000e+00, 6.000000e+00 | 79 %v3 = fsub double 5.000000e+00, 6.000000e+00 |
| 77 ; CHECK-NEXT: %__3 = fsub double 5.000000e+00, 6.000000e+00 | 80 ; CHECK-NEXT: %v3 = fsub double 5.000000e+00, 6.000000e+00 |
| 78 | 81 |
| 79 ; Test undefined float and double. | 82 ; Test undefined float and double. |
| 80 %v4 = fadd float undef, 0.0 | 83 %v4 = fadd float undef, 0.0 |
| 81 ; CHECK-NEXT: %__4 = fadd float undef, 0.000000e+00 | 84 ; CHECK-NEXT: %v4 = fadd float undef, 0.000000e+00 |
| 82 | 85 |
| 83 %v5 = fsub double undef, 6.000000e+00 | 86 %v5 = fsub double undef, 6.000000e+00 |
| 84 ; CHECK-NEXT: %__5 = fsub double undef, 6.000000e+00 | 87 ; CHECK-NEXT: %v5 = fsub double undef, 6.000000e+00 |
| 85 | 88 |
| 86 ; Test special floating point constants. Note: LLVM assembly appears | 89 ; Test special floating point constants. Note: LLVM assembly appears |
| 87 ; to use 64-bit integer constants for both float and double. | 90 ; to use 64-bit integer constants for both float and double. |
| 88 | 91 |
| 89 ; Generated from NAN in <math.h> | 92 ; Generated from NAN in <math.h> |
| 90 %v6 = fadd float 0x7FF8000000000000, 0.0 | 93 %v6 = fadd float 0x7FF8000000000000, 0.0 |
| 91 ; CHECK-NEXT: %__6 = fadd float nan, 0.000000e+00 | 94 ; CHECK-NEXT: %v6 = fadd float nan, 0.000000e+00 |
| 92 | 95 |
| 93 ; Generated from -NAN in <math.h> | 96 ; Generated from -NAN in <math.h> |
| 94 %v7 = fadd float 0xFFF8000000000000, 0.0 | 97 %v7 = fadd float 0xFFF8000000000000, 0.0 |
| 95 ; CHECK-NEXT: %__7 = fadd float -nan, 0.000000e+00 | 98 ; CHECK-NEXT: %v7 = fadd float -nan, 0.000000e+00 |
| 96 | 99 |
| 97 ; Generated from INFINITY in <math.h> | 100 ; Generated from INFINITY in <math.h> |
| 98 %v8 = fadd float 0x7FF0000000000000, 0.0 | 101 %v8 = fadd float 0x7FF0000000000000, 0.0 |
| 99 ; CHECK-NEXT: %__8 = fadd float inf, 0.000000e+00 | 102 ; CHECK-NEXT: %v8 = fadd float inf, 0.000000e+00 |
| 100 | 103 |
| 101 ; Generated from -INFINITY in <math.h> | 104 ; Generated from -INFINITY in <math.h> |
| 102 %v9 = fadd float 0xFFF0000000000000, 0.0 | 105 %v9 = fadd float 0xFFF0000000000000, 0.0 |
| 103 ; CHECK-NEXT: %__9 = fadd float -inf, 0.000000e+00 | 106 ; CHECK-NEXT: %v9 = fadd float -inf, 0.000000e+00 |
| 104 | 107 |
| 105 ; Generated from FLT_MIN in <float.h> | 108 ; Generated from FLT_MIN in <float.h> |
| 106 %v10 = fadd float 0x381000000000000000, 0.0 | 109 %v10 = fadd float 0x381000000000000000, 0.0 |
| 107 ; CHECK-NEXT: %__10 = fadd float 0.000000e+00, 0.000000e+00 | 110 ; CHECK-NEXT: %v10 = fadd float 0.000000e+00, 0.000000e+00 |
| 108 | 111 |
| 109 ; Generated from -FLT_MIN in <float.h> | 112 ; Generated from -FLT_MIN in <float.h> |
| 110 %v11 = fadd float 0xb81000000000000000, 0.0 | 113 %v11 = fadd float 0xb81000000000000000, 0.0 |
| 111 ; CHECK-NEXT: %__11 = fadd float 0.000000e+00, 0.000000e+00 | 114 ; CHECK-NEXT: %v11 = fadd float 0.000000e+00, 0.000000e+00 |
| 112 | 115 |
| 113 ; Generated from FLT_MAX in <float.h> | 116 ; Generated from FLT_MAX in <float.h> |
| 114 %v12 = fadd float 340282346638528859811704183484516925440.000000, 0.0 | 117 %v12 = fadd float 340282346638528859811704183484516925440.000000, 0.0 |
| 115 ; CHECK-NEXT: %__12 = fadd float 3.402823e+38, 0.000000e+00 | 118 ; CHECK-NEXT: %v12 = fadd float 3.402823e+38, 0.000000e+00 |
| 116 | 119 |
| 117 ; Generated from -FLT_MAX in <float.h> | 120 ; Generated from -FLT_MAX in <float.h> |
| 118 %v13 = fadd float -340282346638528859811704183484516925440.000000, 0.0 | 121 %v13 = fadd float -340282346638528859811704183484516925440.000000, 0.0 |
| 119 ; CHECK-NEXT: %__13 = fadd float -3.402823e+38, 0.000000e+00 | 122 ; CHECK-NEXT: %v13 = fadd float -3.402823e+38, 0.000000e+00 |
| 120 | 123 |
| 121 ; Generated from NAN in <math.h> | 124 ; Generated from NAN in <math.h> |
| 122 %v14 = fadd double 0x7FF8000000000000, 0.0 | 125 %v14 = fadd double 0x7FF8000000000000, 0.0 |
| 123 ; CHECK-NEXT: %__14 = fadd double nan, 0.000000e+00 | 126 ; CHECK-NEXT: %v14 = fadd double nan, 0.000000e+00 |
| 124 | 127 |
| 125 ; Generated from -NAN in <math.h> | 128 ; Generated from -NAN in <math.h> |
| 126 %v15 = fadd double 0xFFF8000000000000, 0.0 | 129 %v15 = fadd double 0xFFF8000000000000, 0.0 |
| 127 ; CHECK-NEXT: %__15 = fadd double -nan, 0.000000e+00 | 130 ; CHECK-NEXT: %v15 = fadd double -nan, 0.000000e+00 |
| 128 | 131 |
| 129 ; Generated from INFINITY in <math.h> | 132 ; Generated from INFINITY in <math.h> |
| 130 %v16 = fadd double 0x7FF0000000000000, 0.0 | 133 %v16 = fadd double 0x7FF0000000000000, 0.0 |
| 131 ; CHECK-NEXT: %__16 = fadd double inf, 0.000000e+00 | 134 ; CHECK-NEXT: %v16 = fadd double inf, 0.000000e+00 |
| 132 | 135 |
| 133 ; Generated from -INFINITY in <math.h> | 136 ; Generated from -INFINITY in <math.h> |
| 134 %v17 = fadd double 0xFFF0000000000000, 0.0 | 137 %v17 = fadd double 0xFFF0000000000000, 0.0 |
| 135 ; CHECK-NEXT: %__17 = fadd double -inf, 0.000000e+00 | 138 ; CHECK-NEXT: %v17 = fadd double -inf, 0.000000e+00 |
| 136 | 139 |
| 137 ; Generated from DBL_MIN in <float.h> | 140 ; Generated from DBL_MIN in <float.h> |
| 138 %v18 = fadd double 0x0010000000000000, 0.0 | 141 %v18 = fadd double 0x0010000000000000, 0.0 |
| 139 ; CHECK-NEXT: %__18 = fadd double 2.225074e-308, 0.000000e+00 | 142 ; CHECK-NEXT: %v18 = fadd double 2.225074e-308, 0.000000e+00 |
| 140 | 143 |
| 141 ; Generated from -DBL_MIN in <float.h> | 144 ; Generated from -DBL_MIN in <float.h> |
| 142 %v19 = fadd double 0x8010000000000000, 0.0 | 145 %v19 = fadd double 0x8010000000000000, 0.0 |
| 143 ; CHECK-NEXT: %__19 = fadd double -2.225074e-308, 0.000000e+00 | 146 ; CHECK-NEXT: %v19 = fadd double -2.225074e-308, 0.000000e+00 |
| 144 | 147 |
| 145 ; Generated from DBL_MAX in <float.h> | 148 ; Generated from DBL_MAX in <float.h> |
| 146 %v20 = fadd double 17976931348623157081452742373170435679807056752584499659891
74768031572607800285387605895586327668781715404589535143824642343213268894641827
68467546703537516986049910576551282076245490090389328944075868508455133942304583
23690322294816580855933212334827479782620414472316873817718091929988125040402618
4124858368.000000, 0.0 | 149 %v20 = fadd double 17976931348623157081452742373170435679807056752584499659891
74768031572607800285387605895586327668781715404589535143824642343213268894641827
68467546703537516986049910576551282076245490090389328944075868508455133942304583
23690322294816580855933212334827479782620414472316873817718091929988125040402618
4124858368.000000, 0.0 |
| 147 ; CHECK-NEXT: %__20 = fadd double 1.797693e+308, 0.000000e+00 | 150 ; CHECK-NEXT: %v20 = fadd double 1.797693e+308, 0.000000e+00 |
| 148 | 151 |
| 149 ; Generated from -DBL_MAX in <float.h> | 152 ; Generated from -DBL_MAX in <float.h> |
| 150 %v21 = fadd double -1797693134862315708145274237317043567980705675258449965989
17476803157260780028538760589558632766878171540458953514382464234321326889464182
76846754670353751698604991057655128207624549009038932894407586850845513394230458
32369032229481658085593321233482747978262041447231687381771809192998812504040261
84124858368.000000, 0.0 | 153 %v21 = fadd double -1797693134862315708145274237317043567980705675258449965989
17476803157260780028538760589558632766878171540458953514382464234321326889464182
76846754670353751698604991057655128207624549009038932894407586850845513394230458
32369032229481658085593321233482747978262041447231687381771809192998812504040261
84124858368.000000, 0.0 |
| 151 ; CHECK-NEXT: %__21 = fadd double -1.797693e+308, 0.000000e+00 | 154 ; CHECK-NEXT: %v21 = fadd double -1.797693e+308, 0.000000e+00 |
| 152 | 155 |
| 153 ret void | 156 ret void |
| 154 ; CHECK-NEXT: ret void | 157 ; CHECK-NEXT: ret void |
| 155 } | 158 } |
| OLD | NEW |