Matt Arsenault | 7a960a8 | 2013-08-20 21:20:04 +0000 | [diff] [blame] | 1 | ; RUN: opt < %s -default-data-layout="e-p:64:64:64-p1:16:16:16-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64" -instcombine -S | FileCheck %s --check-prefix=LE |
| 2 | ; RUN: opt < %s -default-data-layout="E-p:64:64:64-p1:16:16:16-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64" -instcombine -S | FileCheck %s --check-prefix=BE |
Chris Lattner | ed00b80 | 2009-10-23 06:23:49 +0000 | [diff] [blame] | 3 | |
NAKAMURA Takumi | 43ab4ef | 2012-11-08 20:34:25 +0000 | [diff] [blame] | 4 | ; {{ 0xDEADBEEF, 0xBA }, 0xCAFEBABE} |
Chris Lattner | 9e2d5b3 | 2009-10-24 05:22:15 +0000 | [diff] [blame] | 5 | @g1 = constant {{i32,i8},i32} {{i32,i8} { i32 -559038737, i8 186 }, i32 -889275714 } |
| 6 | @g2 = constant double 1.0 |
NAKAMURA Takumi | 43ab4ef | 2012-11-08 20:34:25 +0000 | [diff] [blame] | 7 | ; { 0x7B, 0x06B1BFF8 } |
Chris Lattner | 9e2d5b3 | 2009-10-24 05:22:15 +0000 | [diff] [blame] | 8 | @g3 = constant {i64, i64} { i64 123, i64 112312312 } |
Chris Lattner | ed00b80 | 2009-10-23 06:23:49 +0000 | [diff] [blame] | 9 | |
| 10 | ; Simple load |
| 11 | define i32 @test1() { |
David Blaikie | a79ac14 | 2015-02-27 21:17:42 +0000 | [diff] [blame] | 12 | %r = load i32, i32* getelementptr ({{i32,i8},i32}* @g1, i32 0, i32 0, i32 0) |
Chris Lattner | ed00b80 | 2009-10-23 06:23:49 +0000 | [diff] [blame] | 13 | ret i32 %r |
NAKAMURA Takumi | 43ab4ef | 2012-11-08 20:34:25 +0000 | [diff] [blame] | 14 | |
| 15 | ; 0xDEADBEEF |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 16 | ; LE-LABEL: @test1( |
NAKAMURA Takumi | 43ab4ef | 2012-11-08 20:34:25 +0000 | [diff] [blame] | 17 | ; LE: ret i32 -559038737 |
| 18 | |
| 19 | ; 0xDEADBEEF |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 20 | ; BE-LABEL: @test1( |
NAKAMURA Takumi | 43ab4ef | 2012-11-08 20:34:25 +0000 | [diff] [blame] | 21 | ; BE: ret i32 -559038737 |
Chris Lattner | ed00b80 | 2009-10-23 06:23:49 +0000 | [diff] [blame] | 22 | } |
| 23 | |
| 24 | ; PR3152 |
| 25 | ; Load of first 16 bits of 32-bit value. |
| 26 | define i16 @test2() { |
David Blaikie | a79ac14 | 2015-02-27 21:17:42 +0000 | [diff] [blame] | 27 | %r = load i16, i16* bitcast(i32* getelementptr ({{i32,i8},i32}* @g1, i32 0, i32 0, i32 0) to i16*) |
Chris Lattner | ed00b80 | 2009-10-23 06:23:49 +0000 | [diff] [blame] | 28 | ret i16 %r |
| 29 | |
NAKAMURA Takumi | 43ab4ef | 2012-11-08 20:34:25 +0000 | [diff] [blame] | 30 | ; 0xBEEF |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 31 | ; LE-LABEL: @test2( |
NAKAMURA Takumi | 43ab4ef | 2012-11-08 20:34:25 +0000 | [diff] [blame] | 32 | ; LE: ret i16 -16657 |
| 33 | |
| 34 | ; 0xDEAD |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 35 | ; BE-LABEL: @test2( |
NAKAMURA Takumi | 43ab4ef | 2012-11-08 20:34:25 +0000 | [diff] [blame] | 36 | ; BE: ret i16 -8531 |
Chris Lattner | ed00b80 | 2009-10-23 06:23:49 +0000 | [diff] [blame] | 37 | } |
| 38 | |
Matt Arsenault | caa9c71 | 2014-07-14 22:39:26 +0000 | [diff] [blame] | 39 | define i16 @test2_addrspacecast() { |
David Blaikie | a79ac14 | 2015-02-27 21:17:42 +0000 | [diff] [blame] | 40 | %r = load i16, i16 addrspace(1)* addrspacecast(i32* getelementptr ({{i32,i8},i32}* @g1, i32 0, i32 0, i32 0) to i16 addrspace(1)*) |
Matt Arsenault | caa9c71 | 2014-07-14 22:39:26 +0000 | [diff] [blame] | 41 | ret i16 %r |
| 42 | |
| 43 | ; 0xBEEF |
| 44 | ; LE-LABEL: @test2_addrspacecast( |
| 45 | ; LE: ret i16 -16657 |
| 46 | |
| 47 | ; 0xDEAD |
| 48 | ; BE-LABEL: @test2_addrspacecast( |
| 49 | ; BE: ret i16 -8531 |
| 50 | } |
| 51 | |
Chris Lattner | ed00b80 | 2009-10-23 06:23:49 +0000 | [diff] [blame] | 52 | ; Load of second 16 bits of 32-bit value. |
| 53 | define i16 @test3() { |
David Blaikie | a79ac14 | 2015-02-27 21:17:42 +0000 | [diff] [blame] | 54 | %r = load i16, i16* getelementptr(i16* bitcast(i32* getelementptr ({{i32,i8},i32}* @g1, i32 0, i32 0, i32 0) to i16*), i32 1) |
Chris Lattner | ed00b80 | 2009-10-23 06:23:49 +0000 | [diff] [blame] | 55 | ret i16 %r |
| 56 | |
NAKAMURA Takumi | 43ab4ef | 2012-11-08 20:34:25 +0000 | [diff] [blame] | 57 | ; 0xDEAD |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 58 | ; LE-LABEL: @test3( |
NAKAMURA Takumi | 43ab4ef | 2012-11-08 20:34:25 +0000 | [diff] [blame] | 59 | ; LE: ret i16 -8531 |
| 60 | |
| 61 | ; 0xBEEF |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 62 | ; BE-LABEL: @test3( |
NAKAMURA Takumi | 43ab4ef | 2012-11-08 20:34:25 +0000 | [diff] [blame] | 63 | ; BE: ret i16 -16657 |
Chris Lattner | ed00b80 | 2009-10-23 06:23:49 +0000 | [diff] [blame] | 64 | } |
| 65 | |
| 66 | ; Load of 8 bit field + tail padding. |
| 67 | define i16 @test4() { |
David Blaikie | a79ac14 | 2015-02-27 21:17:42 +0000 | [diff] [blame] | 68 | %r = load i16, i16* getelementptr(i16* bitcast(i32* getelementptr ({{i32,i8},i32}* @g1, i32 0, i32 0, i32 0) to i16*), i32 2) |
Chris Lattner | ed00b80 | 2009-10-23 06:23:49 +0000 | [diff] [blame] | 69 | ret i16 %r |
NAKAMURA Takumi | 43ab4ef | 2012-11-08 20:34:25 +0000 | [diff] [blame] | 70 | |
| 71 | ; 0x00BA |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 72 | ; LE-LABEL: @test4( |
NAKAMURA Takumi | 43ab4ef | 2012-11-08 20:34:25 +0000 | [diff] [blame] | 73 | ; LE: ret i16 186 |
| 74 | |
| 75 | ; 0xBA00 |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 76 | ; BE-LABEL: @test4( |
NAKAMURA Takumi | 43ab4ef | 2012-11-08 20:34:25 +0000 | [diff] [blame] | 77 | ; BE: ret i16 -17920 |
Chris Lattner | ed00b80 | 2009-10-23 06:23:49 +0000 | [diff] [blame] | 78 | } |
| 79 | |
| 80 | ; Load of double bits. |
| 81 | define i64 @test6() { |
David Blaikie | a79ac14 | 2015-02-27 21:17:42 +0000 | [diff] [blame] | 82 | %r = load i64, i64* bitcast(double* @g2 to i64*) |
Chris Lattner | ed00b80 | 2009-10-23 06:23:49 +0000 | [diff] [blame] | 83 | ret i64 %r |
| 84 | |
NAKAMURA Takumi | 43ab4ef | 2012-11-08 20:34:25 +0000 | [diff] [blame] | 85 | ; 0x3FF_0000000000000 |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 86 | ; LE-LABEL: @test6( |
NAKAMURA Takumi | 43ab4ef | 2012-11-08 20:34:25 +0000 | [diff] [blame] | 87 | ; LE: ret i64 4607182418800017408 |
| 88 | |
| 89 | ; 0x3FF_0000000000000 |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 90 | ; BE-LABEL: @test6( |
NAKAMURA Takumi | 43ab4ef | 2012-11-08 20:34:25 +0000 | [diff] [blame] | 91 | ; BE: ret i64 4607182418800017408 |
Chris Lattner | ed00b80 | 2009-10-23 06:23:49 +0000 | [diff] [blame] | 92 | } |
| 93 | |
| 94 | ; Load of double bits. |
| 95 | define i16 @test7() { |
David Blaikie | a79ac14 | 2015-02-27 21:17:42 +0000 | [diff] [blame] | 96 | %r = load i16, i16* bitcast(double* @g2 to i16*) |
Chris Lattner | ed00b80 | 2009-10-23 06:23:49 +0000 | [diff] [blame] | 97 | ret i16 %r |
| 98 | |
NAKAMURA Takumi | 43ab4ef | 2012-11-08 20:34:25 +0000 | [diff] [blame] | 99 | ; 0x0000 |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 100 | ; LE-LABEL: @test7( |
NAKAMURA Takumi | 43ab4ef | 2012-11-08 20:34:25 +0000 | [diff] [blame] | 101 | ; LE: ret i16 0 |
| 102 | |
| 103 | ; 0x3FF0 |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 104 | ; BE-LABEL: @test7( |
NAKAMURA Takumi | 43ab4ef | 2012-11-08 20:34:25 +0000 | [diff] [blame] | 105 | ; BE: ret i16 16368 |
Chris Lattner | ed00b80 | 2009-10-23 06:23:49 +0000 | [diff] [blame] | 106 | } |
| 107 | |
| 108 | ; Double load. |
| 109 | define double @test8() { |
David Blaikie | a79ac14 | 2015-02-27 21:17:42 +0000 | [diff] [blame] | 110 | %r = load double, double* bitcast({{i32,i8},i32}* @g1 to double*) |
Chris Lattner | ed00b80 | 2009-10-23 06:23:49 +0000 | [diff] [blame] | 111 | ret double %r |
| 112 | |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 113 | ; LE-LABEL: @test8( |
NAKAMURA Takumi | 43ab4ef | 2012-11-08 20:34:25 +0000 | [diff] [blame] | 114 | ; LE: ret double 0xBADEADBEEF |
| 115 | |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 116 | ; BE-LABEL: @test8( |
NAKAMURA Takumi | 43ab4ef | 2012-11-08 20:34:25 +0000 | [diff] [blame] | 117 | ; BE: ret double 0xDEADBEEFBA000000 |
Chris Lattner | ed00b80 | 2009-10-23 06:23:49 +0000 | [diff] [blame] | 118 | } |
Chris Lattner | 59f94c0 | 2009-10-23 06:50:36 +0000 | [diff] [blame] | 119 | |
| 120 | |
| 121 | ; i128 load. |
| 122 | define i128 @test9() { |
David Blaikie | a79ac14 | 2015-02-27 21:17:42 +0000 | [diff] [blame] | 123 | %r = load i128, i128* bitcast({i64, i64}* @g3 to i128*) |
Chris Lattner | 59f94c0 | 2009-10-23 06:50:36 +0000 | [diff] [blame] | 124 | ret i128 %r |
| 125 | |
NAKAMURA Takumi | 43ab4ef | 2012-11-08 20:34:25 +0000 | [diff] [blame] | 126 | ; 0x00000000_06B1BFF8_00000000_0000007B |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 127 | ; LE-LABEL: @test9( |
NAKAMURA Takumi | 43ab4ef | 2012-11-08 20:34:25 +0000 | [diff] [blame] | 128 | ; LE: ret i128 2071796475790618158476296315 |
| 129 | |
| 130 | ; 0x00000000_0000007B_00000000_06B1BFF8 |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 131 | ; BE-LABEL: @test9( |
NAKAMURA Takumi | 43ab4ef | 2012-11-08 20:34:25 +0000 | [diff] [blame] | 132 | ; BE: ret i128 2268949521066387161080 |
Chris Lattner | 59f94c0 | 2009-10-23 06:50:36 +0000 | [diff] [blame] | 133 | } |
Chris Lattner | ccf1e84 | 2009-10-23 06:57:37 +0000 | [diff] [blame] | 134 | |
| 135 | ; vector load. |
| 136 | define <2 x i64> @test10() { |
David Blaikie | a79ac14 | 2015-02-27 21:17:42 +0000 | [diff] [blame] | 137 | %r = load <2 x i64>, <2 x i64>* bitcast({i64, i64}* @g3 to <2 x i64>*) |
Chris Lattner | ccf1e84 | 2009-10-23 06:57:37 +0000 | [diff] [blame] | 138 | ret <2 x i64> %r |
| 139 | |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 140 | ; LE-LABEL: @test10( |
NAKAMURA Takumi | 43ab4ef | 2012-11-08 20:34:25 +0000 | [diff] [blame] | 141 | ; LE: ret <2 x i64> <i64 123, i64 112312312> |
| 142 | |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 143 | ; BE-LABEL: @test10( |
NAKAMURA Takumi | 43ab4ef | 2012-11-08 20:34:25 +0000 | [diff] [blame] | 144 | ; BE: ret <2 x i64> <i64 123, i64 112312312> |
Chris Lattner | ccf1e84 | 2009-10-23 06:57:37 +0000 | [diff] [blame] | 145 | } |
| 146 | |
Chris Lattner | 9e2d5b3 | 2009-10-24 05:22:15 +0000 | [diff] [blame] | 147 | |
| 148 | ; PR5287 |
NAKAMURA Takumi | 43ab4ef | 2012-11-08 20:34:25 +0000 | [diff] [blame] | 149 | ; { 0xA1, 0x08 } |
Chris Lattner | 9e2d5b3 | 2009-10-24 05:22:15 +0000 | [diff] [blame] | 150 | @g4 = internal constant { i8, i8 } { i8 -95, i8 8 } |
| 151 | |
| 152 | define i16 @test11() nounwind { |
| 153 | entry: |
David Blaikie | a79ac14 | 2015-02-27 21:17:42 +0000 | [diff] [blame] | 154 | %a = load i16, i16* bitcast ({ i8, i8 }* @g4 to i16*) |
Chris Lattner | 9e2d5b3 | 2009-10-24 05:22:15 +0000 | [diff] [blame] | 155 | ret i16 %a |
NAKAMURA Takumi | 43ab4ef | 2012-11-08 20:34:25 +0000 | [diff] [blame] | 156 | |
| 157 | ; 0x08A1 |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 158 | ; LE-LABEL: @test11( |
NAKAMURA Takumi | 43ab4ef | 2012-11-08 20:34:25 +0000 | [diff] [blame] | 159 | ; LE: ret i16 2209 |
| 160 | |
| 161 | ; 0xA108 |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 162 | ; BE-LABEL: @test11( |
NAKAMURA Takumi | 43ab4ef | 2012-11-08 20:34:25 +0000 | [diff] [blame] | 163 | ; BE: ret i16 -24312 |
Chris Lattner | 9e2d5b3 | 2009-10-24 05:22:15 +0000 | [diff] [blame] | 164 | } |
| 165 | |
| 166 | |
Chris Lattner | 1ddfd9f | 2009-12-04 06:29:29 +0000 | [diff] [blame] | 167 | ; PR5551 |
| 168 | @test12g = private constant [6 x i8] c"a\00b\00\00\00" |
| 169 | |
| 170 | define i16 @test12() { |
David Blaikie | a79ac14 | 2015-02-27 21:17:42 +0000 | [diff] [blame] | 171 | %a = load i16, i16* getelementptr inbounds ([3 x i16]* bitcast ([6 x i8]* @test12g to [3 x i16]*), i32 0, i64 1) |
Chris Lattner | 1ddfd9f | 2009-12-04 06:29:29 +0000 | [diff] [blame] | 172 | ret i16 %a |
NAKAMURA Takumi | 43ab4ef | 2012-11-08 20:34:25 +0000 | [diff] [blame] | 173 | |
| 174 | ; 0x0062 |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 175 | ; LE-LABEL: @test12( |
NAKAMURA Takumi | 43ab4ef | 2012-11-08 20:34:25 +0000 | [diff] [blame] | 176 | ; LE: ret i16 98 |
| 177 | |
| 178 | ; 0x6200 |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 179 | ; BE-LABEL: @test12( |
NAKAMURA Takumi | 43ab4ef | 2012-11-08 20:34:25 +0000 | [diff] [blame] | 180 | ; BE: ret i16 25088 |
Chris Lattner | 1ddfd9f | 2009-12-04 06:29:29 +0000 | [diff] [blame] | 181 | } |
Chris Lattner | a69f89c | 2010-01-08 19:02:23 +0000 | [diff] [blame] | 182 | |
| 183 | |
| 184 | ; PR5978 |
| 185 | @g5 = constant i8 4 |
| 186 | define i1 @test13() { |
David Blaikie | a79ac14 | 2015-02-27 21:17:42 +0000 | [diff] [blame] | 187 | %A = load i1, i1* bitcast (i8* @g5 to i1*) |
Chris Lattner | a69f89c | 2010-01-08 19:02:23 +0000 | [diff] [blame] | 188 | ret i1 %A |
NAKAMURA Takumi | 43ab4ef | 2012-11-08 20:34:25 +0000 | [diff] [blame] | 189 | |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 190 | ; LE-LABEL: @test13( |
NAKAMURA Takumi | 43ab4ef | 2012-11-08 20:34:25 +0000 | [diff] [blame] | 191 | ; LE: ret i1 false |
| 192 | |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 193 | ; BE-LABEL: @test13( |
NAKAMURA Takumi | 43ab4ef | 2012-11-08 20:34:25 +0000 | [diff] [blame] | 194 | ; BE: ret i1 false |
Chris Lattner | a69f89c | 2010-01-08 19:02:23 +0000 | [diff] [blame] | 195 | } |
Anders Carlsson | d21b06a | 2011-02-06 20:11:56 +0000 | [diff] [blame] | 196 | |
| 197 | @g6 = constant [2 x i8*] [i8* inttoptr (i64 1 to i8*), i8* inttoptr (i64 2 to i8*)] |
| 198 | define i64 @test14() nounwind { |
| 199 | entry: |
David Blaikie | a79ac14 | 2015-02-27 21:17:42 +0000 | [diff] [blame] | 200 | %tmp = load i64, i64* bitcast ([2 x i8*]* @g6 to i64*) |
Anders Carlsson | d21b06a | 2011-02-06 20:11:56 +0000 | [diff] [blame] | 201 | ret i64 %tmp |
NAKAMURA Takumi | 43ab4ef | 2012-11-08 20:34:25 +0000 | [diff] [blame] | 202 | |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 203 | ; LE-LABEL: @test14( |
NAKAMURA Takumi | 43ab4ef | 2012-11-08 20:34:25 +0000 | [diff] [blame] | 204 | ; LE: ret i64 1 |
| 205 | |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 206 | ; BE-LABEL: @test14( |
NAKAMURA Takumi | 43ab4ef | 2012-11-08 20:34:25 +0000 | [diff] [blame] | 207 | ; BE: ret i64 1 |
Anders Carlsson | d21b06a | 2011-02-06 20:11:56 +0000 | [diff] [blame] | 208 | } |
| 209 | |
Matt Arsenault | 7a960a8 | 2013-08-20 21:20:04 +0000 | [diff] [blame] | 210 | ; Check with address space pointers |
| 211 | @g6_as1 = constant [2 x i8 addrspace(1)*] [i8 addrspace(1)* inttoptr (i16 1 to i8 addrspace(1)*), i8 addrspace(1)* inttoptr (i16 2 to i8 addrspace(1)*)] |
| 212 | define i16 @test14_as1() nounwind { |
| 213 | entry: |
David Blaikie | a79ac14 | 2015-02-27 21:17:42 +0000 | [diff] [blame] | 214 | %tmp = load i16, i16* bitcast ([2 x i8 addrspace(1)*]* @g6_as1 to i16*) |
Matt Arsenault | 7a960a8 | 2013-08-20 21:20:04 +0000 | [diff] [blame] | 215 | ret i16 %tmp |
| 216 | |
| 217 | ; LE: @test14_as1 |
| 218 | ; LE: ret i16 1 |
| 219 | |
| 220 | ; BE: @test14_as1 |
| 221 | ; BE: ret i16 1 |
| 222 | } |
| 223 | |
Anders Carlsson | d21b06a | 2011-02-06 20:11:56 +0000 | [diff] [blame] | 224 | define i64 @test15() nounwind { |
| 225 | entry: |
David Blaikie | a79ac14 | 2015-02-27 21:17:42 +0000 | [diff] [blame] | 226 | %tmp = load i64, i64* bitcast (i8** getelementptr inbounds ([2 x i8*]* @g6, i32 0, i64 1) to i64*) |
Anders Carlsson | d21b06a | 2011-02-06 20:11:56 +0000 | [diff] [blame] | 227 | ret i64 %tmp |
NAKAMURA Takumi | 43ab4ef | 2012-11-08 20:34:25 +0000 | [diff] [blame] | 228 | |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 229 | ; LE-LABEL: @test15( |
NAKAMURA Takumi | 43ab4ef | 2012-11-08 20:34:25 +0000 | [diff] [blame] | 230 | ; LE: ret i64 2 |
| 231 | |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 232 | ; BE-LABEL: @test15( |
NAKAMURA Takumi | 43ab4ef | 2012-11-08 20:34:25 +0000 | [diff] [blame] | 233 | ; BE: ret i64 2 |
Anders Carlsson | d21b06a | 2011-02-06 20:11:56 +0000 | [diff] [blame] | 234 | } |
Chandler Carruth | a0e5695 | 2014-05-15 09:56:28 +0000 | [diff] [blame] | 235 | |
| 236 | @gv7 = constant [4 x i8*] [i8* null, i8* inttoptr (i64 -14 to i8*), i8* null, i8* null] |
| 237 | define i64 @test16.1() { |
David Blaikie | a79ac14 | 2015-02-27 21:17:42 +0000 | [diff] [blame] | 238 | %v = load i64, i64* bitcast ([4 x i8*]* @gv7 to i64*), align 8 |
Chandler Carruth | a0e5695 | 2014-05-15 09:56:28 +0000 | [diff] [blame] | 239 | ret i64 %v |
| 240 | |
| 241 | ; LE-LABEL: @test16.1( |
| 242 | ; LE: ret i64 0 |
| 243 | |
| 244 | ; BE-LABEL: @test16.1( |
| 245 | ; BE: ret i64 0 |
| 246 | } |
| 247 | |
| 248 | define i64 @test16.2() { |
David Blaikie | a79ac14 | 2015-02-27 21:17:42 +0000 | [diff] [blame] | 249 | %v = load i64, i64* bitcast (i8** getelementptr inbounds ([4 x i8*]* @gv7, i64 0, i64 1) to i64*), align 8 |
Chandler Carruth | a0e5695 | 2014-05-15 09:56:28 +0000 | [diff] [blame] | 250 | ret i64 %v |
| 251 | |
| 252 | ; LE-LABEL: @test16.2( |
| 253 | ; LE: ret i64 -14 |
| 254 | |
| 255 | ; BE-LABEL: @test16.2( |
| 256 | ; BE: ret i64 -14 |
| 257 | } |
| 258 | |
| 259 | define i64 @test16.3() { |
David Blaikie | a79ac14 | 2015-02-27 21:17:42 +0000 | [diff] [blame] | 260 | %v = load i64, i64* bitcast (i8** getelementptr inbounds ([4 x i8*]* @gv7, i64 0, i64 2) to i64*), align 8 |
Chandler Carruth | a0e5695 | 2014-05-15 09:56:28 +0000 | [diff] [blame] | 261 | ret i64 %v |
| 262 | |
| 263 | ; LE-LABEL: @test16.3( |
| 264 | ; LE: ret i64 0 |
| 265 | |
| 266 | ; BE-LABEL: @test16.3( |
| 267 | ; BE: ret i64 0 |
| 268 | } |