392 lines · plain
1; Test the basic functionality of integer element promotions of different types.2; This tests checks passing of arguments, loading and storing to memory and3; basic arithmetic.4; RUN: llc -mtriple=i686-- < %s > /dev/null5; RUN: llc -mtriple=x86_64-- < %s > /dev/null6 7define <1 x i8> @test_1xi8(<1 x i8> %x, ptr %b) {8 %bb = load <1 x i8>, ptr %b9 %tt = xor <1 x i8> %x, %bb10 store <1 x i8> %tt, ptr %b11 br label %next12 13next:14 ret <1 x i8> %tt15}16 17 18define <1 x i16> @test_1xi16(<1 x i16> %x, ptr %b) {19 %bb = load <1 x i16>, ptr %b20 %tt = xor <1 x i16> %x, %bb21 store <1 x i16> %tt, ptr %b22 br label %next23 24next:25 ret <1 x i16> %tt26}27 28 29define <1 x i32> @test_1xi32(<1 x i32> %x, ptr %b) {30 %bb = load <1 x i32>, ptr %b31 %tt = xor <1 x i32> %x, %bb32 store <1 x i32> %tt, ptr %b33 br label %next34 35next:36 ret <1 x i32> %tt37}38 39 40define <1 x i64> @test_1xi64(<1 x i64> %x, ptr %b) {41 %bb = load <1 x i64>, ptr %b42 %tt = xor <1 x i64> %x, %bb43 store <1 x i64> %tt, ptr %b44 br label %next45 46next:47 ret <1 x i64> %tt48}49 50 51define <1 x i128> @test_1xi128(<1 x i128> %x, ptr %b) {52 %bb = load <1 x i128>, ptr %b53 %tt = xor <1 x i128> %x, %bb54 store <1 x i128> %tt, ptr %b55 br label %next56 57next:58 ret <1 x i128> %tt59}60 61 62define <1 x i256> @test_1xi256(<1 x i256> %x, ptr %b) {63 %bb = load <1 x i256>, ptr %b64 %tt = xor <1 x i256> %x, %bb65 store <1 x i256> %tt, ptr %b66 br label %next67 68next:69 ret <1 x i256> %tt70}71 72 73define <1 x i512> @test_1xi512(<1 x i512> %x, ptr %b) {74 %bb = load <1 x i512>, ptr %b75 %tt = xor <1 x i512> %x, %bb76 store <1 x i512> %tt, ptr %b77 br label %next78 79next:80 ret <1 x i512> %tt81}82 83 84define <2 x i8> @test_2xi8(<2 x i8> %x, ptr %b) {85 %bb = load <2 x i8>, ptr %b86 %tt = xor <2 x i8> %x, %bb87 store <2 x i8> %tt, ptr %b88 br label %next89 90next:91 ret <2 x i8> %tt92}93 94 95define <2 x i16> @test_2xi16(<2 x i16> %x, ptr %b) {96 %bb = load <2 x i16>, ptr %b97 %tt = xor <2 x i16> %x, %bb98 store <2 x i16> %tt, ptr %b99 br label %next100 101next:102 ret <2 x i16> %tt103}104 105 106define <2 x i32> @test_2xi32(<2 x i32> %x, ptr %b) {107 %bb = load <2 x i32>, ptr %b108 %tt = xor <2 x i32> %x, %bb109 store <2 x i32> %tt, ptr %b110 br label %next111 112next:113 ret <2 x i32> %tt114}115 116 117define <2 x i64> @test_2xi64(<2 x i64> %x, ptr %b) {118 %bb = load <2 x i64>, ptr %b119 %tt = xor <2 x i64> %x, %bb120 store <2 x i64> %tt, ptr %b121 br label %next122 123next:124 ret <2 x i64> %tt125}126 127 128define <2 x i128> @test_2xi128(<2 x i128> %x, ptr %b) {129 %bb = load <2 x i128>, ptr %b130 %tt = xor <2 x i128> %x, %bb131 store <2 x i128> %tt, ptr %b132 br label %next133 134next:135 ret <2 x i128> %tt136}137 138 139define <2 x i256> @test_2xi256(<2 x i256> %x, ptr %b) {140 %bb = load <2 x i256>, ptr %b141 %tt = xor <2 x i256> %x, %bb142 store <2 x i256> %tt, ptr %b143 br label %next144 145next:146 ret <2 x i256> %tt147}148 149 150define <2 x i512> @test_2xi512(<2 x i512> %x, ptr %b) {151 %bb = load <2 x i512>, ptr %b152 %tt = xor <2 x i512> %x, %bb153 store <2 x i512> %tt, ptr %b154 br label %next155 156next:157 ret <2 x i512> %tt158}159 160 161define <3 x i8> @test_3xi8(<3 x i8> %x, ptr %b) {162 %bb = load <3 x i8>, ptr %b163 %tt = xor <3 x i8> %x, %bb164 store <3 x i8> %tt, ptr %b165 br label %next166 167next:168 ret <3 x i8> %tt169}170 171 172define <3 x i16> @test_3xi16(<3 x i16> %x, ptr %b) {173 %bb = load <3 x i16>, ptr %b174 %tt = xor <3 x i16> %x, %bb175 store <3 x i16> %tt, ptr %b176 br label %next177 178next:179 ret <3 x i16> %tt180}181 182 183define <3 x i32> @test_3xi32(<3 x i32> %x, ptr %b) {184 %bb = load <3 x i32>, ptr %b185 %tt = xor <3 x i32> %x, %bb186 store <3 x i32> %tt, ptr %b187 br label %next188 189next:190 ret <3 x i32> %tt191}192 193 194define <3 x i64> @test_3xi64(<3 x i64> %x, ptr %b) {195 %bb = load <3 x i64>, ptr %b196 %tt = xor <3 x i64> %x, %bb197 store <3 x i64> %tt, ptr %b198 br label %next199 200next:201 ret <3 x i64> %tt202}203 204 205define <3 x i128> @test_3xi128(<3 x i128> %x, ptr %b) {206 %bb = load <3 x i128>, ptr %b207 %tt = xor <3 x i128> %x, %bb208 store <3 x i128> %tt, ptr %b209 br label %next210 211next:212 ret <3 x i128> %tt213}214 215 216define <3 x i256> @test_3xi256(<3 x i256> %x, ptr %b) {217 %bb = load <3 x i256>, ptr %b218 %tt = xor <3 x i256> %x, %bb219 store <3 x i256> %tt, ptr %b220 br label %next221 222next:223 ret <3 x i256> %tt224}225 226 227define <3 x i512> @test_3xi512(<3 x i512> %x, ptr %b) {228 %bb = load <3 x i512>, ptr %b229 %tt = xor <3 x i512> %x, %bb230 store <3 x i512> %tt, ptr %b231 br label %next232 233next:234 ret <3 x i512> %tt235}236 237 238define <4 x i8> @test_4xi8(<4 x i8> %x, ptr %b) {239 %bb = load <4 x i8>, ptr %b240 %tt = xor <4 x i8> %x, %bb241 store <4 x i8> %tt, ptr %b242 br label %next243 244next:245 ret <4 x i8> %tt246}247 248 249define <4 x i16> @test_4xi16(<4 x i16> %x, ptr %b) {250 %bb = load <4 x i16>, ptr %b251 %tt = xor <4 x i16> %x, %bb252 store <4 x i16> %tt, ptr %b253 br label %next254 255next:256 ret <4 x i16> %tt257}258 259 260define <4 x i32> @test_4xi32(<4 x i32> %x, ptr %b) {261 %bb = load <4 x i32>, ptr %b262 %tt = xor <4 x i32> %x, %bb263 store <4 x i32> %tt, ptr %b264 br label %next265 266next:267 ret <4 x i32> %tt268}269 270 271define <4 x i64> @test_4xi64(<4 x i64> %x, ptr %b) {272 %bb = load <4 x i64>, ptr %b273 %tt = xor <4 x i64> %x, %bb274 store <4 x i64> %tt, ptr %b275 br label %next276 277next:278 ret <4 x i64> %tt279}280 281 282define <4 x i128> @test_4xi128(<4 x i128> %x, ptr %b) {283 %bb = load <4 x i128>, ptr %b284 %tt = xor <4 x i128> %x, %bb285 store <4 x i128> %tt, ptr %b286 br label %next287 288next:289 ret <4 x i128> %tt290}291 292 293define <4 x i256> @test_4xi256(<4 x i256> %x, ptr %b) {294 %bb = load <4 x i256>, ptr %b295 %tt = xor <4 x i256> %x, %bb296 store <4 x i256> %tt, ptr %b297 br label %next298 299next:300 ret <4 x i256> %tt301}302 303 304define <4 x i512> @test_4xi512(<4 x i512> %x, ptr %b) {305 %bb = load <4 x i512>, ptr %b306 %tt = xor <4 x i512> %x, %bb307 store <4 x i512> %tt, ptr %b308 br label %next309 310next:311 ret <4 x i512> %tt312}313 314 315define <5 x i8> @test_5xi8(<5 x i8> %x, ptr %b) {316 %bb = load <5 x i8>, ptr %b317 %tt = xor <5 x i8> %x, %bb318 store <5 x i8> %tt, ptr %b319 br label %next320 321next:322 ret <5 x i8> %tt323}324 325 326define <5 x i16> @test_5xi16(<5 x i16> %x, ptr %b) {327 %bb = load <5 x i16>, ptr %b328 %tt = xor <5 x i16> %x, %bb329 store <5 x i16> %tt, ptr %b330 br label %next331 332next:333 ret <5 x i16> %tt334}335 336 337define <5 x i32> @test_5xi32(<5 x i32> %x, ptr %b) {338 %bb = load <5 x i32>, ptr %b339 %tt = xor <5 x i32> %x, %bb340 store <5 x i32> %tt, ptr %b341 br label %next342 343next:344 ret <5 x i32> %tt345}346 347 348define <5 x i64> @test_5xi64(<5 x i64> %x, ptr %b) {349 %bb = load <5 x i64>, ptr %b350 %tt = xor <5 x i64> %x, %bb351 store <5 x i64> %tt, ptr %b352 br label %next353 354next:355 ret <5 x i64> %tt356}357 358 359define <5 x i128> @test_5xi128(<5 x i128> %x, ptr %b) {360 %bb = load <5 x i128>, ptr %b361 %tt = xor <5 x i128> %x, %bb362 store <5 x i128> %tt, ptr %b363 br label %next364 365next:366 ret <5 x i128> %tt367}368 369 370define <5 x i256> @test_5xi256(<5 x i256> %x, ptr %b) {371 %bb = load <5 x i256>, ptr %b372 %tt = xor <5 x i256> %x, %bb373 store <5 x i256> %tt, ptr %b374 br label %next375 376next:377 ret <5 x i256> %tt378}379 380 381define <5 x i512> @test_5xi512(<5 x i512> %x, ptr %b) {382 %bb = load <5 x i512>, ptr %b383 %tt = xor <5 x i512> %x, %bb384 store <5 x i512> %tt, ptr %b385 br label %next386 387next:388 ret <5 x i512> %tt389}390 391 392