Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(119)

Side by Side Diff: test/Transforms/NaCl/promote-integers.ll

Issue 1151093004: Changes from 3.7 merge to files not in upstream (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-llvm.git@master
Patch Set: Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 ; RUN: opt < %s -nacl-promote-ints -S | FileCheck %s 1 ; RUN: opt < %s -nacl-promote-ints -S | FileCheck %s
2 2
3 target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64 :64:64-p:32:32:32-v128:32:32" 3 target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64 :64:64-p:32:32:32-v128:32:32"
4 4
5 declare void @consume_i16(i16 %a) 5 declare void @consume_i16(i16 %a)
6 6
7 ; CHECK-LABEL: @sext_to_illegal( 7 ; CHECK-LABEL: @sext_to_illegal(
8 ; CHECK-NEXT: %a40 = sext i32 %a to i64 8 ; CHECK-NEXT: %a40 = sext i32 %a to i64
9 ; (0xFFFFFFFFFF) 9 ; (0xFFFFFFFFFF)
10 define void @sext_to_illegal(i32 %a) { 10 define void @sext_to_illegal(i32 %a) {
(...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after
332 %s40 = select i1 true, i40 %a40, i40 -1 332 %s40 = select i1 true, i40 %a40, i40 -1
333 ret void 333 ret void
334 } 334 }
335 335
336 ; Allocas are left unchanged. 336 ; Allocas are left unchanged.
337 ; CHECK-LABEL: @alloca40( 337 ; CHECK-LABEL: @alloca40(
338 ; CHECK: %a = alloca i40, align 8 338 ; CHECK: %a = alloca i40, align 8
339 define void @alloca40() { 339 define void @alloca40() {
340 %a = alloca i40, align 8 340 %a = alloca i40, align 8
341 %b = bitcast i40* %a to i8* 341 %b = bitcast i40* %a to i8*
342 %c = load i8* %b 342 %c = load i8, i8* %b
343 ret void 343 ret void
344 } 344 }
345 345
346 ; CHECK-LABEL: @load24( 346 ; CHECK-LABEL: @load24(
347 ; CHECK: %bc.loty = bitcast i8* %a to i16* 347 ; CHECK: %bc.loty = bitcast i8* %a to i16*
348 ; CHECK-NEXT: %load.lo = load i16* %bc.loty, align 8 348 ; CHECK-NEXT: %load.lo = load i16, i16* %bc.loty, align 8
349 ; CHECK-NEXT: %load.lo.ext = zext i16 %load.lo to i32 349 ; CHECK-NEXT: %load.lo.ext = zext i16 %load.lo to i32
350 ; CHECK-NEXT: %bc.hi = getelementptr i16* %bc.loty, i32 1 350 ; CHECK-NEXT: %bc.hi = getelementptr i16, i16* %bc.loty, i32 1
351 ; CHECK-NEXT: %bc.hity = bitcast i16* %bc.hi to i8* 351 ; CHECK-NEXT: %bc.hity = bitcast i16* %bc.hi to i8*
352 ; CHECK-NEXT: %load.hi = load i8* %bc.hity, align 2 352 ; CHECK-NEXT: %load.hi = load i8, i8* %bc.hity, align 2
353 ; CHECK-NEXT: %load.hi.ext = zext i8 %load.hi to i32 353 ; CHECK-NEXT: %load.hi.ext = zext i8 %load.hi to i32
354 ; CHECK-NEXT: %load.hi.ext.sh = shl i32 %load.hi.ext, 16 354 ; CHECK-NEXT: %load.hi.ext.sh = shl i32 %load.hi.ext, 16
355 ; CHECK-NEXT: %load = or i32 %load.lo.ext, %load.hi.ext.sh 355 ; CHECK-NEXT: %load = or i32 %load.lo.ext, %load.hi.ext.sh
356 define void @load24(i8* %a) { 356 define void @load24(i8* %a) {
357 %bc = bitcast i8* %a to i24* 357 %bc = bitcast i8* %a to i24*
358 %load = load i24* %bc, align 8 358 %load = load i24, i24* %bc, align 8
359 ret void 359 ret void
360 } 360 }
361 361
362 ; CHECK-LABEL: @load24_overaligned( 362 ; CHECK-LABEL: @load24_overaligned(
363 ; CHECK: %load.lo = load i16* %bc.loty, align 32 363 ; CHECK: %load.lo = load i16, i16* %bc.loty, align 32
364 ; CHECK: %load.hi = load i8* %bc.hity, align 2 364 ; CHECK: %load.hi = load i8, i8* %bc.hity, align 2
365 define void @load24_overaligned(i8* %a) { 365 define void @load24_overaligned(i8* %a) {
366 %bc = bitcast i8* %a to i24* 366 %bc = bitcast i8* %a to i24*
367 %load = load i24* %bc, align 32 367 %load = load i24, i24* %bc, align 32
368 ret void 368 ret void
369 } 369 }
370 370
371 ; CHECK-LABEL: @load48( 371 ; CHECK-LABEL: @load48(
372 ; CHECK: %load.lo = load i32* %a, align 8 372 ; CHECK: %load.lo = load i32, i32* %a, align 8
373 ; CHECK-NEXT: %load.lo.ext = zext i32 %load.lo to i64 373 ; CHECK-NEXT: %load.lo.ext = zext i32 %load.lo to i64
374 ; CHECK-NEXT: %bc.hi = getelementptr i32* %a, i32 1 374 ; CHECK-NEXT: %bc.hi = getelementptr i32, i32* %a, i32 1
375 ; CHECK-NEXT: %bc.hity = bitcast i32* %bc.hi to i16* 375 ; CHECK-NEXT: %bc.hity = bitcast i32* %bc.hi to i16*
376 ; CHECK-NEXT: %load.hi = load i16* %bc.hity, align 4 376 ; CHECK-NEXT: %load.hi = load i16, i16* %bc.hity, align 4
377 ; CHECK-NEXT: %load.hi.ext = zext i16 %load.hi to i64 377 ; CHECK-NEXT: %load.hi.ext = zext i16 %load.hi to i64
378 ; CHECK-NEXT: %load.hi.ext.sh = shl i64 %load.hi.ext, 32 378 ; CHECK-NEXT: %load.hi.ext.sh = shl i64 %load.hi.ext, 32
379 ; CHECK-NEXT: %load = or i64 %load.lo.ext, %load.hi.ext.sh 379 ; CHECK-NEXT: %load = or i64 %load.lo.ext, %load.hi.ext.sh
380 define void @load48(i32* %a) { 380 define void @load48(i32* %a) {
381 %bc = bitcast i32* %a to i48* 381 %bc = bitcast i32* %a to i48*
382 %load = load i48* %bc, align 8 382 %load = load i48, i48* %bc, align 8
383 ret void 383 ret void
384 } 384 }
385 385
386 ; CHECK-LABEL: @load56( 386 ; CHECK-LABEL: @load56(
387 ; CHECK: %bc = bitcast i32* %a to i56* 387 ; CHECK: %bc = bitcast i32* %a to i56*
388 ; CHECK-NEXT: %load.lo = load i32* %a, align 8 388 ; CHECK-NEXT: %load.lo = load i32, i32* %a, align 8
389 ; CHECK-NEXT: %load.lo.ext = zext i32 %load.lo to i64 389 ; CHECK-NEXT: %load.lo.ext = zext i32 %load.lo to i64
390 ; CHECK-NEXT: %bc.hi = getelementptr i32* %a, i32 1 390 ; CHECK-NEXT: %bc.hi = getelementptr i32, i32* %a, i32 1
391 ; CHECK-NEXT: %bc.hity = bitcast i32* %bc.hi to i24* 391 ; CHECK-NEXT: %bc.hity = bitcast i32* %bc.hi to i24*
392 ; CHECK-NEXT: %bc.hity.loty = bitcast i32* %bc.hi to i16* 392 ; CHECK-NEXT: %bc.hity.loty = bitcast i32* %bc.hi to i16*
393 ; CHECK-NEXT: %load.hi.lo = load i16* %bc.hity.loty, align 4 393 ; CHECK-NEXT: %load.hi.lo = load i16, i16* %bc.hity.loty, align 4
394 ; CHECK-NEXT: %load.hi.lo.ext = zext i16 %load.hi.lo to i32 394 ; CHECK-NEXT: %load.hi.lo.ext = zext i16 %load.hi.lo to i32
395 ; CHECK-NEXT: %bc.hity.hi = getelementptr i16* %bc.hity.loty, i32 1 395 ; CHECK-NEXT: %bc.hity.hi = getelementptr i16, i16* %bc.hity.loty, i32 1
396 ; CHECK-NEXT: %bc.hity.hity = bitcast i16* %bc.hity.hi to i8* 396 ; CHECK-NEXT: %bc.hity.hity = bitcast i16* %bc.hity.hi to i8*
397 ; CHECK-NEXT: %load.hi.hi = load i8* %bc.hity.hity, align 2 397 ; CHECK-NEXT: %load.hi.hi = load i8, i8* %bc.hity.hity, align 2
398 ; CHECK-NEXT: %load.hi.hi.ext = zext i8 %load.hi.hi to i32 398 ; CHECK-NEXT: %load.hi.hi.ext = zext i8 %load.hi.hi to i32
399 ; CHECK-NEXT: %load.hi.hi.ext.sh = shl i32 %load.hi.hi.ext, 16 399 ; CHECK-NEXT: %load.hi.hi.ext.sh = shl i32 %load.hi.hi.ext, 16
400 ; CHECK-NEXT: %load.hi = or i32 %load.hi.lo.ext, %load.hi.hi.ext.sh 400 ; CHECK-NEXT: %load.hi = or i32 %load.hi.lo.ext, %load.hi.hi.ext.sh
401 ; CHECK-NEXT: %load.hi.ext = zext i32 %load.hi to i64 401 ; CHECK-NEXT: %load.hi.ext = zext i32 %load.hi to i64
402 ; CHECK-NEXT: %load.hi.ext.sh = shl i64 %load.hi.ext, 32 402 ; CHECK-NEXT: %load.hi.ext.sh = shl i64 %load.hi.ext, 32
403 ; CHECK-NEXT: %load = or i64 %load.lo.ext, %load.hi.ext.sh 403 ; CHECK-NEXT: %load = or i64 %load.lo.ext, %load.hi.ext.sh
404 define void @load56(i32* %a) { 404 define void @load56(i32* %a) {
405 %bc = bitcast i32* %a to i56* 405 %bc = bitcast i32* %a to i56*
406 %load = load i56* %bc 406 %load = load i56, i56* %bc
407 ret void 407 ret void
408 } 408 }
409 409
410 ; Ensure that types just above and just below large powers of 2 can be compiled. 410 ; Ensure that types just above and just below large powers of 2 can be compiled.
411 ; CHECK-LABEL: @load_large( 411 ; CHECK-LABEL: @load_large(
412 define void @load_large(i32* %a) { 412 define void @load_large(i32* %a) {
413 %bc1 = bitcast i32* %a to i2056* 413 %bc1 = bitcast i32* %a to i2056*
414 %load1 = load i2056* %bc1 414 %load1 = load i2056, i2056* %bc1
415 %bc2 = bitcast i32* %a to i4088* 415 %bc2 = bitcast i32* %a to i4088*
416 %load2 = load i4088* %bc2 416 %load2 = load i4088, i4088* %bc2
417 ret void 417 ret void
418 } 418 }
419 419
420 ; CHECK-LABEL: @store24( 420 ; CHECK-LABEL: @store24(
421 ; CHECK: %b24 = zext i8 %b to i32 421 ; CHECK: %b24 = zext i8 %b to i32
422 ; CHECK-NEXT: %bc.loty = bitcast i8* %a to i16* 422 ; CHECK-NEXT: %bc.loty = bitcast i8* %a to i16*
423 ; CHECK-NEXT: %b24.lo = trunc i32 %b24 to i16 423 ; CHECK-NEXT: %b24.lo = trunc i32 %b24 to i16
424 ; CHECK-NEXT: store i16 %b24.lo, i16* %bc.loty, align 4 424 ; CHECK-NEXT: store i16 %b24.lo, i16* %bc.loty, align 4
425 ; CHECK-NEXT: %b24.hi.sh = lshr i32 %b24, 16 425 ; CHECK-NEXT: %b24.hi.sh = lshr i32 %b24, 16
426 ; CHECK-NEXT: %bc.hi = getelementptr i16* %bc.loty, i32 1 426 ; CHECK-NEXT: %bc.hi = getelementptr i16, i16* %bc.loty, i32 1
427 ; CHECK-NEXT: %b24.hi = trunc i32 %b24.hi.sh to i8 427 ; CHECK-NEXT: %b24.hi = trunc i32 %b24.hi.sh to i8
428 ; CHECK-NEXT: %bc.hity = bitcast i16* %bc.hi to i8* 428 ; CHECK-NEXT: %bc.hity = bitcast i16* %bc.hi to i8*
429 ; CHECK-NEXT: store i8 %b24.hi, i8* %bc.hity, align 2 429 ; CHECK-NEXT: store i8 %b24.hi, i8* %bc.hity, align 2
430 define void @store24(i8* %a, i8 %b) { 430 define void @store24(i8* %a, i8 %b) {
431 %bc = bitcast i8* %a to i24* 431 %bc = bitcast i8* %a to i24*
432 %b24 = zext i8 %b to i24 432 %b24 = zext i8 %b to i24
433 store i24 %b24, i24* %bc 433 store i24 %b24, i24* %bc
434 ret void 434 ret void
435 } 435 }
436 436
437 ; CHECK-LABEL: @store24_overaligned( 437 ; CHECK-LABEL: @store24_overaligned(
438 ; CHECK: store i16 %b24.lo, i16* %bc.loty, align 32 438 ; CHECK: store i16 %b24.lo, i16* %bc.loty, align 32
439 ; CHECK: store i8 %b24.hi, i8* %bc.hity, align 2 439 ; CHECK: store i8 %b24.hi, i8* %bc.hity, align 2
440 define void @store24_overaligned(i8* %a, i8 %b) { 440 define void @store24_overaligned(i8* %a, i8 %b) {
441 %bc = bitcast i8* %a to i24* 441 %bc = bitcast i8* %a to i24*
442 %b24 = zext i8 %b to i24 442 %b24 = zext i8 %b to i24
443 store i24 %b24, i24* %bc, align 32 443 store i24 %b24, i24* %bc, align 32
444 ret void 444 ret void
445 } 445 }
446 446
447 ; CHECK-LABEL: @store56( 447 ; CHECK-LABEL: @store56(
448 ; CHECK: %b56 = zext i8 %b to i64 448 ; CHECK: %b56 = zext i8 %b to i64
449 ; CHECK-NEXT: %bc.loty = bitcast i8* %a to i32* 449 ; CHECK-NEXT: %bc.loty = bitcast i8* %a to i32*
450 ; CHECK-NEXT: %b56.lo = trunc i64 %b56 to i32 450 ; CHECK-NEXT: %b56.lo = trunc i64 %b56 to i32
451 ; CHECK-NEXT: store i32 %b56.lo, i32* %bc.loty, align 8 451 ; CHECK-NEXT: store i32 %b56.lo, i32* %bc.loty, align 8
452 ; CHECK-NEXT: %b56.hi.sh = lshr i64 %b56, 32 452 ; CHECK-NEXT: %b56.hi.sh = lshr i64 %b56, 32
453 ; CHECK-NEXT: %bc.hi = getelementptr i32* %bc.loty, i32 1 453 ; CHECK-NEXT: %bc.hi = getelementptr i32, i32* %bc.loty, i32 1
454 ; CHECK-NEXT: %bc.hity = bitcast i32* %bc.hi to i24* 454 ; CHECK-NEXT: %bc.hity = bitcast i32* %bc.hi to i24*
455 ; CHECK-NEXT: %bc.hity.loty = bitcast i32* %bc.hi to i16* 455 ; CHECK-NEXT: %bc.hity.loty = bitcast i32* %bc.hi to i16*
456 ; CHECK-NEXT: %b56.hi.sh.lo = trunc i64 %b56.hi.sh to i16 456 ; CHECK-NEXT: %b56.hi.sh.lo = trunc i64 %b56.hi.sh to i16
457 ; CHECK-NEXT: store i16 %b56.hi.sh.lo, i16* %bc.hity.loty, align 4 457 ; CHECK-NEXT: store i16 %b56.hi.sh.lo, i16* %bc.hity.loty, align 4
458 ; CHECK-NEXT: %b56.hi.sh.hi.sh = lshr i64 %b56.hi.sh, 16 458 ; CHECK-NEXT: %b56.hi.sh.hi.sh = lshr i64 %b56.hi.sh, 16
459 ; CHECK-NEXT: %bc.hity.hi = getelementptr i16* %bc.hity.loty, i32 1 459 ; CHECK-NEXT: %bc.hity.hi = getelementptr i16, i16* %bc.hity.loty, i32 1
460 ; CHECK-NEXT: %b56.hi.sh.hi = trunc i64 %b56.hi.sh.hi.sh to i8 460 ; CHECK-NEXT: %b56.hi.sh.hi = trunc i64 %b56.hi.sh.hi.sh to i8
461 ; CHECK-NEXT: %bc.hity.hity = bitcast i16* %bc.hity.hi to i8* 461 ; CHECK-NEXT: %bc.hity.hity = bitcast i16* %bc.hity.hi to i8*
462 ; CHECK-NEXT: store i8 %b56.hi.sh.hi, i8* %bc.hity.hity, align 2 462 ; CHECK-NEXT: store i8 %b56.hi.sh.hi, i8* %bc.hity.hity, align 2
463 define void @store56(i8* %a, i8 %b) { 463 define void @store56(i8* %a, i8 %b) {
464 %bc = bitcast i8* %a to i56* 464 %bc = bitcast i8* %a to i56*
465 %b56 = zext i8 %b to i56 465 %b56 = zext i8 %b to i56
466 store i56 %b56, i56* %bc 466 store i56 %b56, i56* %bc
467 ret void 467 ret void
468 } 468 }
469 469
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
514 ret void 514 ret void
515 if2: 515 if2:
516 ret void 516 ret void
517 end: 517 end:
518 ret void 518 ret void
519 } 519 }
520 520
521 521
522 ; The getelementptr here should be handled unchanged. 522 ; The getelementptr here should be handled unchanged.
523 ; CHECK-LABEL: @pointer_to_array( 523 ; CHECK-LABEL: @pointer_to_array(
524 ; CHECK: %element_ptr = getelementptr [2 x i40]* %ptr, i32 0, i32 0 524 ; CHECK: %element_ptr = getelementptr [2 x i40], [2 x i40]* %ptr, i32 0, i32 0
525 define void @pointer_to_array([2 x i40]* %ptr) { 525 define void @pointer_to_array([2 x i40]* %ptr) {
526 %element_ptr = getelementptr [2 x i40]* %ptr, i32 0, i32 0 526 %element_ptr = getelementptr [2 x i40], [2 x i40]* %ptr, i32 0, i32 0
527 load i40* %element_ptr 527 load i40, i40* %element_ptr
528 ret void 528 ret void
529 } 529 }
530 530
531 ; Store 0x1222277777777 and make sure it's split up into 3 stores of each part. 531 ; Store 0x1222277777777 and make sure it's split up into 3 stores of each part.
532 ; CHECK-LABEL: @constants( 532 ; CHECK-LABEL: @constants(
533 ; CHECK: store i32 2004318071, i32* %{{.*}}, align 4 533 ; CHECK: store i32 2004318071, i32* %{{.*}}, align 4
534 ; CHECK: store i16 8738, i16* %{{.*}} 534 ; CHECK: store i16 8738, i16* %{{.*}}
535 ; CHECK: store i8 1, i8* %{{.*}} 535 ; CHECK: store i8 1, i8* %{{.*}}
536 define void @constants(i56* %ptr) { 536 define void @constants(i56* %ptr) {
537 store i56 319006405261175, i56* %ptr, align 4 537 store i56 319006405261175, i56* %ptr, align 4
538 ret void 538 ret void
539 } 539 }
540 540
541 @from = external global [300 x i8], align 4 541 @from = external global [300 x i8], align 4
542 @to = external global [300 x i8], align 4 542 @to = external global [300 x i8], align 4
543 543
544 ; CHECK-LABEL: @load_bc_to_i80( 544 ; CHECK-LABEL: @load_bc_to_i80(
545 ; CHECK-NEXT: %expanded = bitcast [300 x i8]* @from to i64* 545 ; CHECK-NEXT: %expanded = bitcast [300 x i8]* @from to i64*
546 ; CHECK-NEXT: %loaded.short.lo = load i64* %expanded, align 4 546 ; CHECK-NEXT: %loaded.short.lo = load i64, i64* %expanded, align 4
547 ; CHECK-NEXT: %loaded.short.lo.ext = zext i64 %loaded.short.lo to i128 547 ; CHECK-NEXT: %loaded.short.lo.ext = zext i64 %loaded.short.lo to i128
548 ; CHECK-NEXT: %expanded5 = bitcast [300 x i8]* @from to i64* 548 ; CHECK-NEXT: %expanded5 = bitcast [300 x i8]* @from to i64*
549 ; CHECK-NEXT: %expanded4 = getelementptr i64* %expanded5, i32 1 549 ; CHECK-NEXT: %expanded4 = getelementptr i64, i64* %expanded5, i32 1
550 ; CHECK-NEXT: %expanded3 = bitcast i64* %expanded4 to i16* 550 ; CHECK-NEXT: %expanded3 = bitcast i64* %expanded4 to i16*
551 ; CHECK-NEXT: %loaded.short.hi = load i16* %expanded3, align 4 551 ; CHECK-NEXT: %loaded.short.hi = load i16, i16* %expanded3, align 4
552 ; CHECK-NEXT: %loaded.short.hi.ext = zext i16 %loaded.short.hi to i128 552 ; CHECK-NEXT: %loaded.short.hi.ext = zext i16 %loaded.short.hi to i128
553 ; CHECK-NEXT: %loaded.short.hi.ext.sh = shl i128 %loaded.short.hi.ext, 64 553 ; CHECK-NEXT: %loaded.short.hi.ext.sh = shl i128 %loaded.short.hi.ext, 64
554 ; CHECK-NEXT: %loaded.short = or i128 %loaded.short.lo.ext, %loaded.short.hi.ex t.sh 554 ; CHECK-NEXT: %loaded.short = or i128 %loaded.short.lo.ext, %loaded.short.hi.ex t.sh
555 ; CHECK-NEXT: %loaded.short.lo1 = trunc i128 %loaded.short to i64 555 ; CHECK-NEXT: %loaded.short.lo1 = trunc i128 %loaded.short to i64
556 ; CHECK-NEXT: %expanded6 = bitcast [300 x i8]* @to to i64* 556 ; CHECK-NEXT: %expanded6 = bitcast [300 x i8]* @to to i64*
557 ; CHECK-NEXT: store i64 %loaded.short.lo1, i64* %expanded6, align 4 557 ; CHECK-NEXT: store i64 %loaded.short.lo1, i64* %expanded6, align 4
558 ; CHECK-NEXT: %loaded.short.hi.sh = lshr i128 %loaded.short, 64 558 ; CHECK-NEXT: %loaded.short.hi.sh = lshr i128 %loaded.short, 64
559 ; CHECK-NEXT: %loaded.short.hi2 = trunc i128 %loaded.short.hi.sh to i16 559 ; CHECK-NEXT: %loaded.short.hi2 = trunc i128 %loaded.short.hi.sh to i16
560 ; CHECK-NEXT: %expanded9 = bitcast [300 x i8]* @to to i64* 560 ; CHECK-NEXT: %expanded9 = bitcast [300 x i8]* @to to i64*
561 ; CHECK-NEXT: %expanded8 = getelementptr i64* %expanded9, i32 1 561 ; CHECK-NEXT: %expanded8 = getelementptr i64, i64* %expanded9, i32 1
562 ; CHECK-NEXT: %expanded7 = bitcast i64* %expanded8 to i16* 562 ; CHECK-NEXT: %expanded7 = bitcast i64* %expanded8 to i16*
563 ; CHECK-NEXT: store i16 %loaded.short.hi2, i16* %expanded7, align 4 563 ; CHECK-NEXT: store i16 %loaded.short.hi2, i16* %expanded7, align 4
564 define void @load_bc_to_i80() { 564 define void @load_bc_to_i80() {
565 %loaded.short = load i80* bitcast ([300 x i8]* @from to i80*), align 4 565 %loaded.short = load i80, i80* bitcast ([300 x i8]* @from to i80*), align 4
566 store i80 %loaded.short, i80* bitcast ([300 x i8]* @to to i80*), align 4 566 store i80 %loaded.short, i80* bitcast ([300 x i8]* @to to i80*), align 4
567 ret void 567 ret void
568 } 568 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698