@@ -378,50 +378,72 @@ entry:
378
378
define i64 @imm19 () {
379
379
; CHECK-LABEL: imm19:
380
380
; CHECK: # %bb.0: # %entry
381
- ; CHECK-NEXT: lis 3, -13105
382
- ; CHECK-NEXT: ori 3, 3, 52479
383
- ; CHECK-NEXT: rldic 3, 3, 32, 0
384
- ; CHECK-NEXT: oris 3, 3, 52431
385
- ; CHECK-NEXT: ori 3, 3, 291
386
- ; CHECK-NEXT: blr
381
+ ; CHECK-NEXT: lis 3, -13105
382
+ ; CHECK-NEXT: ori 3, 3, 52479
383
+ ; CHECK-NEXT: rldic 3, 3, 32, 0
384
+ ; CHECK-NEXT: oris 3, 3, 52431
385
+ ; CHECK-NEXT: ori 3, 3, 291
386
+ ; CHECK-NEXT: blr
387
387
entry:
388
388
ret i64 14758239902941249827 ;0xCCCFCCFFCCCF0123
389
389
}
390
390
391
391
define i64 @imm20 () {
392
392
; CHECK-LABEL: imm20:
393
393
; CHECK: # %bb.0: # %entry
394
- ; CHECK-NEXT: lis 3, 291
395
- ; CHECK-NEXT: ori 3, 3, 52479
396
- ; CHECK-NEXT: rldimi 3, 3, 32, 0
397
- ; CHECK-NEXT: rldimi 3, 3, 48, 0
398
- ; CHECK-NEXT: blr
394
+ ; CHECK-NEXT: lis 3, 291
395
+ ; CHECK-NEXT: ori 3, 3, 52479
396
+ ; CHECK-NEXT: rldimi 3, 3, 32, 0
397
+ ; CHECK-NEXT: rldimi 3, 3, 48, 0
398
+ ; CHECK-NEXT: blr
399
399
entry:
400
400
ret i64 14771750698406366463 ;0xCCFFCCFF0123CCFF
401
401
}
402
402
403
403
define i64 @imm21 () {
404
404
; CHECK-LABEL: imm21:
405
405
; CHECK: # %bb.0: # %entry
406
- ; CHECK-NEXT: lis 3, -13057
407
- ; CHECK-NEXT: ori 3, 3, 291
408
- ; CHECK-NEXT: rldimi 3, 3, 32, 0
409
- ; CHECK-NEXT: rlwimi 3, 3, 16, 16, 31
410
- ; CHECK-NEXT: blr
406
+ ; CHECK-NEXT: lis 3, -13057
407
+ ; CHECK-NEXT: ori 3, 3, 291
408
+ ; CHECK-NEXT: rldimi 3, 3, 32, 0
409
+ ; CHECK-NEXT: rlwimi 3, 3, 16, 16, 31
410
+ ; CHECK-NEXT: blr
411
411
entry:
412
412
ret i64 14771526556073315583 ;0xCCFF0123CCFFCCFF
413
413
}
414
414
415
415
define i64 @imm22 () {
416
416
; CHECK-LABEL: imm22:
417
417
; CHECK: # %bb.0: # %entry
418
- ; CHECK-NEXT: lis 3, 291
419
- ; CHECK-NEXT: ori 3, 3, 52479
420
- ; CHECK-NEXT: rldimi 3, 3, 32, 0
421
- ; CHECK-NEXT: rlwimi 3, 3, 16, 0, 15
422
- ; CHECK-NEXT: blr
418
+ ; CHECK-NEXT: lis 3, 291
419
+ ; CHECK-NEXT: ori 3, 3, 52479
420
+ ; CHECK-NEXT: rldimi 3, 3, 32, 0
421
+ ; CHECK-NEXT: rlwimi 3, 3, 16, 0, 15
422
+ ; CHECK-NEXT: blr
423
423
entry:
424
424
ret i64 82134617250843903 ;0x0123CCFFCCFFCCFF
425
425
}
426
426
427
+ define i64 @imm23 () {
428
+ ; CHECK-LABEL: imm23:
429
+ ; CHECK: # %bb.0: # %entry
430
+ ; CHECK-NEXT: lis 3, -2
431
+ ; CHECK-NEXT: ori 3, 3, 0
432
+ ; CHECK-NEXT: rldicl 3, 3, 15, 17
433
+ ; CHECK-NEXT: blr
434
+ entry:
435
+ ret i64 140733193420799 ;0x00007FFF00007FFF
436
+ }
437
+
438
+ define i64 @imm24 () {
439
+ ; CHECK-LABEL: imm24:
440
+ ; CHECK: # %bb.0: # %entry
441
+ ; CHECK-NEXT: lis 3, -9
442
+ ; CHECK-NEXT: ori 3, 3, 0
443
+ ; CHECK-NEXT: rldimi 3, 3, 32, 0
444
+ ; CHECK-NEXT: blr
445
+ entry:
446
+ ret i64 18444210803213533184 ;0xFFF70000FFF70000
447
+ }
448
+
427
449
attributes #0 = { nounwind readnone }
0 commit comments