1cc627828SQiu Chaofan; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 3 2cc627828SQiu Chaofan; RUN: llc -verify-machineinstrs < %s -mtriple=powerpc64le-unknown-linux-gnu -mcpu=pwr8 | FileCheck %s 3cc627828SQiu Chaofan; RUN: llc -verify-machineinstrs < %s -mtriple=powerpc64-ibm-aix -mcpu=pwr8 | FileCheck %s 4cc627828SQiu Chaofan 5cc627828SQiu Chaofandefine i64 @rldimi1(i64 %a) { 6cc627828SQiu Chaofan; CHECK-LABEL: rldimi1: 7cc627828SQiu Chaofan; CHECK: # %bb.0: # %entry 8cc627828SQiu Chaofan; CHECK-NEXT: rldimi 3, 3, 8, 0 9cc627828SQiu Chaofan; CHECK-NEXT: blr 10cc627828SQiu Chaofanentry: 11cc627828SQiu Chaofan %x0 = shl i64 %a, 8 12cc627828SQiu Chaofan %x1 = and i64 %a, 255 13cc627828SQiu Chaofan %x2 = or i64 %x0, %x1 14cc627828SQiu Chaofan ret i64 %x2 15cc627828SQiu Chaofan} 16cc627828SQiu Chaofan 17cc627828SQiu Chaofandefine i64 @rldimi2(i64 %a) { 18cc627828SQiu Chaofan; CHECK-LABEL: rldimi2: 19cc627828SQiu Chaofan; CHECK: # %bb.0: # %entry 20cc627828SQiu Chaofan; CHECK-NEXT: mr 4, 3 21cc627828SQiu Chaofan; CHECK-NEXT: rlwimi 4, 3, 8, 16, 23 22cc627828SQiu Chaofan; CHECK-NEXT: rlwimi 4, 3, 16, 8, 15 23cc627828SQiu Chaofan; CHECK-NEXT: rldimi 4, 3, 24, 0 24cc627828SQiu Chaofan; CHECK-NEXT: mr 3, 4 25cc627828SQiu Chaofan; CHECK-NEXT: blr 26cc627828SQiu Chaofanentry: 27cc627828SQiu Chaofan %x0 = shl i64 %a, 8 28cc627828SQiu Chaofan %x1 = and i64 %a, 255 29cc627828SQiu Chaofan %x2 = or i64 %x0, %x1 30cc627828SQiu Chaofan %x3 = shl i64 %x2, 16 31cc627828SQiu Chaofan %x4 = and i64 %x2, 65535 32cc627828SQiu Chaofan %x5 = or i64 %x3, %x4 33cc627828SQiu Chaofan ret i64 %x5 34cc627828SQiu Chaofan} 35cc627828SQiu Chaofan 36cc627828SQiu Chaofandefine i64 @rldimi3(i64 %a) { 37cc627828SQiu Chaofan; CHECK-LABEL: rldimi3: 38cc627828SQiu Chaofan; CHECK: # %bb.0: # %entry 39cc627828SQiu Chaofan; CHECK-NEXT: rotldi 4, 3, 32 40cc627828SQiu Chaofan; CHECK-NEXT: rlwimi 4, 3, 0, 24, 31 41cc627828SQiu Chaofan; CHECK-NEXT: rlwimi 4, 3, 8, 16, 23 42cc627828SQiu Chaofan; CHECK-NEXT: rlwimi 4, 3, 16, 8, 15 43cc627828SQiu Chaofan; CHECK-NEXT: rlwimi 4, 3, 24, 0, 7 44cc627828SQiu Chaofan; CHECK-NEXT: rldimi 4, 3, 40, 16 45cc627828SQiu Chaofan; CHECK-NEXT: rldimi 4, 3, 48, 8 46cc627828SQiu Chaofan; CHECK-NEXT: rldimi 4, 3, 56, 0 47cc627828SQiu Chaofan; CHECK-NEXT: mr 3, 4 48cc627828SQiu Chaofan; CHECK-NEXT: blr 49cc627828SQiu Chaofanentry: 50cc627828SQiu Chaofan %0 = shl i64 %a, 8 51cc627828SQiu Chaofan %1 = and i64 %a, 255 52cc627828SQiu Chaofan %2 = or i64 %0, %1 53cc627828SQiu Chaofan %3 = shl i64 %2, 16 54cc627828SQiu Chaofan %4 = and i64 %2, 65535 55cc627828SQiu Chaofan %5 = or i64 %3, %4 56cc627828SQiu Chaofan %6 = shl i64 %5, 32 57cc627828SQiu Chaofan %7 = and i64 %5, 4294967295 58cc627828SQiu Chaofan %8 = or i64 %6, %7 59cc627828SQiu Chaofan ret i64 %8 60cc627828SQiu Chaofan} 61906580baSQiu Chaofan 6265ae09eeSQiu Chaofandefine i64 @rldimi4(i64 %a) { 6365ae09eeSQiu Chaofan; CHECK-LABEL: rldimi4: 64906580baSQiu Chaofan; CHECK: # %bb.0: 65906580baSQiu Chaofan; CHECK-NEXT: rldimi 3, 3, 8, 0 66906580baSQiu Chaofan; CHECK-NEXT: rldimi 3, 3, 16, 0 67906580baSQiu Chaofan; CHECK-NEXT: rldimi 3, 3, 32, 0 68906580baSQiu Chaofan; CHECK-NEXT: blr 69906580baSQiu Chaofan %r1 = call i64 @llvm.ppc.rldimi(i64 %a, i64 %a, i32 8, i64 -256) 70906580baSQiu Chaofan %r2 = call i64 @llvm.ppc.rldimi(i64 %r1, i64 %r1, i32 16, i64 -65536) 71906580baSQiu Chaofan %r3 = call i64 @llvm.ppc.rldimi(i64 %r2, i64 %r2, i32 32, i64 -4294967296) 72906580baSQiu Chaofan ret i64 %r3 73906580baSQiu Chaofan} 74906580baSQiu Chaofan 7565ae09eeSQiu Chaofandefine i64 @rldimi5(i64 %a, i64 %b) { 7665ae09eeSQiu Chaofan; CHECK-LABEL: rldimi5: 7765ae09eeSQiu Chaofan; CHECK: # %bb.0: 7865ae09eeSQiu Chaofan; CHECK-NEXT: rldimi 4, 3, 8, 40 7965ae09eeSQiu Chaofan; CHECK-NEXT: mr 3, 4 8065ae09eeSQiu Chaofan; CHECK-NEXT: blr 8165ae09eeSQiu Chaofan %r = call i64 @llvm.ppc.rldimi(i64 %a, i64 %b, i32 8, i64 16776960) ; 0xffff << 8 8265ae09eeSQiu Chaofan ret i64 %r 8365ae09eeSQiu Chaofan} 8465ae09eeSQiu Chaofan 8565ae09eeSQiu Chaofandefine i64 @rldimi6(i64 %a, i64 %b) { 8665ae09eeSQiu Chaofan; CHECK-LABEL: rldimi6: 8765ae09eeSQiu Chaofan; CHECK: # %bb.0: 8865ae09eeSQiu Chaofan; CHECK-NEXT: rotldi 3, 3, 1 8965ae09eeSQiu Chaofan; CHECK-NEXT: rldimi 4, 3, 7, 41 9065ae09eeSQiu Chaofan; CHECK-NEXT: mr 3, 4 9165ae09eeSQiu Chaofan; CHECK-NEXT: blr 9265ae09eeSQiu Chaofan %r = call i64 @llvm.ppc.rldimi(i64 %a, i64 %b, i32 8, i64 8388480) ; 0xffff << 7 9365ae09eeSQiu Chaofan ret i64 %r 9465ae09eeSQiu Chaofan} 9565ae09eeSQiu Chaofan 9665ae09eeSQiu Chaofandefine i64 @rldimi7(i64 %a, i64 %b) { 9765ae09eeSQiu Chaofan; CHECK-LABEL: rldimi7: 9865ae09eeSQiu Chaofan; CHECK: # %bb.0: 9965ae09eeSQiu Chaofan; CHECK-NEXT: rotldi 3, 3, 63 10065ae09eeSQiu Chaofan; CHECK-NEXT: rldimi 4, 3, 9, 39 10165ae09eeSQiu Chaofan; CHECK-NEXT: mr 3, 4 10265ae09eeSQiu Chaofan; CHECK-NEXT: blr 10365ae09eeSQiu Chaofan %r = call i64 @llvm.ppc.rldimi(i64 %a, i64 %b, i32 8, i64 33553920) ; 0xffff << 9 10465ae09eeSQiu Chaofan ret i64 %r 10565ae09eeSQiu Chaofan} 10665ae09eeSQiu Chaofan 10765ae09eeSQiu Chaofandefine i64 @rldimi8(i64 %a, i64 %b) { 10865ae09eeSQiu Chaofan; CHECK-LABEL: rldimi8: 10965ae09eeSQiu Chaofan; CHECK: # %bb.0: 11065ae09eeSQiu Chaofan; CHECK-NEXT: mr 3, 4 11165ae09eeSQiu Chaofan; CHECK-NEXT: blr 11265ae09eeSQiu Chaofan %r = call i64 @llvm.ppc.rldimi(i64 %a, i64 %b, i32 0, i64 0) 11365ae09eeSQiu Chaofan ret i64 %r 11465ae09eeSQiu Chaofan} 11565ae09eeSQiu Chaofan 11665ae09eeSQiu Chaofandefine i64 @rldimi9(i64 %a, i64 %b) { 11765ae09eeSQiu Chaofan; CHECK-LABEL: rldimi9: 11865ae09eeSQiu Chaofan; CHECK: # %bb.0: 11965ae09eeSQiu Chaofan; CHECK-NEXT: mr 3, 4 12065ae09eeSQiu Chaofan; CHECK-NEXT: blr 12165ae09eeSQiu Chaofan %r = call i64 @llvm.ppc.rldimi(i64 %a, i64 %b, i32 63, i64 0) 12265ae09eeSQiu Chaofan ret i64 %r 12365ae09eeSQiu Chaofan} 12465ae09eeSQiu Chaofan 12565ae09eeSQiu Chaofandefine i64 @rldimi10(i64 %a, i64 %b) { 12665ae09eeSQiu Chaofan; CHECK-LABEL: rldimi10: 12765ae09eeSQiu Chaofan; CHECK: # %bb.0: 12865ae09eeSQiu Chaofan; CHECK-NEXT: blr 12965ae09eeSQiu Chaofan %r = call i64 @llvm.ppc.rldimi(i64 %a, i64 %b, i32 0, i64 -1) 13065ae09eeSQiu Chaofan ret i64 %r 13165ae09eeSQiu Chaofan} 13265ae09eeSQiu Chaofan 13365ae09eeSQiu Chaofandefine i64 @rldimi11(i64 %a, i64 %b) { 13465ae09eeSQiu Chaofan; CHECK-LABEL: rldimi11: 13565ae09eeSQiu Chaofan; CHECK: # %bb.0: 13665ae09eeSQiu Chaofan; CHECK-NEXT: rotldi 3, 3, 8 13765ae09eeSQiu Chaofan; CHECK-NEXT: blr 13865ae09eeSQiu Chaofan %r = call i64 @llvm.ppc.rldimi(i64 %a, i64 %b, i32 8, i64 -1) 13965ae09eeSQiu Chaofan ret i64 %r 14065ae09eeSQiu Chaofan} 14165ae09eeSQiu Chaofan 142*a4558a4aSQiu Chaofandefine i64 @rldimi12(i64 %a, i64 %b) { 143*a4558a4aSQiu Chaofan; CHECK-LABEL: rldimi12: 144*a4558a4aSQiu Chaofan; CHECK: # %bb.0: 145*a4558a4aSQiu Chaofan; CHECK-NEXT: rotldi 3, 3, 20 146*a4558a4aSQiu Chaofan; CHECK-NEXT: rldimi 4, 3, 44, 31 147*a4558a4aSQiu Chaofan; CHECK-NEXT: mr 3, 4 148*a4558a4aSQiu Chaofan; CHECK-NEXT: blr 149*a4558a4aSQiu Chaofan %r = call i64 @llvm.ppc.rldimi(i64 %a, i64 %b, i32 0, i64 18446726490113441791) 150*a4558a4aSQiu Chaofan ret i64 %r 151*a4558a4aSQiu Chaofan} 152*a4558a4aSQiu Chaofan 153*a4558a4aSQiu Chaofandefine i64 @rldimi13(i64 %a, i64 %b) { 154*a4558a4aSQiu Chaofan; CHECK-LABEL: rldimi13: 155*a4558a4aSQiu Chaofan; CHECK: # %bb.0: 156*a4558a4aSQiu Chaofan; CHECK-NEXT: rotldi 3, 3, 62 157*a4558a4aSQiu Chaofan; CHECK-NEXT: rldimi 4, 3, 32, 2 158*a4558a4aSQiu Chaofan; CHECK-NEXT: mr 3, 4 159*a4558a4aSQiu Chaofan; CHECK-NEXT: blr 160*a4558a4aSQiu Chaofan %r = call i64 @llvm.ppc.rldimi(i64 %a, i64 %b, i32 30, i64 4611686014132420608) 161*a4558a4aSQiu Chaofan ret i64 %r 162*a4558a4aSQiu Chaofan} 163*a4558a4aSQiu Chaofan 164*a4558a4aSQiu Chaofandefine i64 @rldimi14(i64 %a, i64 %b) { 165*a4558a4aSQiu Chaofan; CHECK-LABEL: rldimi14: 166*a4558a4aSQiu Chaofan; CHECK: # %bb.0: 167*a4558a4aSQiu Chaofan; CHECK-NEXT: rotldi 3, 3, 23 168*a4558a4aSQiu Chaofan; CHECK-NEXT: rldimi 4, 3, 53, 0 169*a4558a4aSQiu Chaofan; CHECK-NEXT: mr 3, 4 170*a4558a4aSQiu Chaofan; CHECK-NEXT: blr 171*a4558a4aSQiu Chaofan %r = call i64 @llvm.ppc.rldimi(i64 %a, i64 %b, i32 12, i64 18437736874454810624) ; mb=0, me=10 172*a4558a4aSQiu Chaofan ret i64 %r 173*a4558a4aSQiu Chaofan} 174*a4558a4aSQiu Chaofan 175*a4558a4aSQiu Chaofandefine i64 @rldimi15(i64 %a, i64 %b) { 176*a4558a4aSQiu Chaofan; CHECK-LABEL: rldimi15: 177*a4558a4aSQiu Chaofan; CHECK: # %bb.0: 178*a4558a4aSQiu Chaofan; CHECK-NEXT: rotldi 3, 3, 36 179*a4558a4aSQiu Chaofan; CHECK-NEXT: rldimi 4, 3, 40, 10 180*a4558a4aSQiu Chaofan; CHECK-NEXT: mr 3, 4 181*a4558a4aSQiu Chaofan; CHECK-NEXT: blr 182*a4558a4aSQiu Chaofan %r = call i64 @llvm.ppc.rldimi(i64 %a, i64 %b, i32 12, i64 18013298997854208) ; mb=10, me=23 183*a4558a4aSQiu Chaofan ret i64 %r 184*a4558a4aSQiu Chaofan} 185*a4558a4aSQiu Chaofan 186*a4558a4aSQiu Chaofandefine i64 @rldimi16(i64 %a, i64 %b) { 187*a4558a4aSQiu Chaofan; CHECK-LABEL: rldimi16: 188*a4558a4aSQiu Chaofan; CHECK: # %bb.0: 189*a4558a4aSQiu Chaofan; CHECK-NEXT: rotldi 3, 3, 57 190*a4558a4aSQiu Chaofan; CHECK-NEXT: rldimi 4, 3, 19, 10 191*a4558a4aSQiu Chaofan; CHECK-NEXT: mr 3, 4 192*a4558a4aSQiu Chaofan; CHECK-NEXT: blr 193*a4558a4aSQiu Chaofan %r = call i64 @llvm.ppc.rldimi(i64 %a, i64 %b, i32 12, i64 18014398508957696) ; mb=10, me=44 194*a4558a4aSQiu Chaofan ret i64 %r 195*a4558a4aSQiu Chaofan} 196*a4558a4aSQiu Chaofan 197*a4558a4aSQiu Chaofandefine i64 @rldimi17(i64 %a, i64 %b) { 198*a4558a4aSQiu Chaofan; CHECK-LABEL: rldimi17: 199*a4558a4aSQiu Chaofan; CHECK: # %bb.0: 200*a4558a4aSQiu Chaofan; CHECK-NEXT: rotldi 3, 3, 43 201*a4558a4aSQiu Chaofan; CHECK-NEXT: rldimi 4, 3, 33, 25 202*a4558a4aSQiu Chaofan; CHECK-NEXT: mr 3, 4 203*a4558a4aSQiu Chaofan; CHECK-NEXT: blr 204*a4558a4aSQiu Chaofan %r = call i64 @llvm.ppc.rldimi(i64 %a, i64 %b, i32 12, i64 541165879296) ; mb=25, me=30 205*a4558a4aSQiu Chaofan ret i64 %r 206*a4558a4aSQiu Chaofan} 207*a4558a4aSQiu Chaofan 208*a4558a4aSQiu Chaofandefine i64 @rldimi18(i64 %a, i64 %b) { 209*a4558a4aSQiu Chaofan; CHECK-LABEL: rldimi18: 210*a4558a4aSQiu Chaofan; CHECK: # %bb.0: 211*a4558a4aSQiu Chaofan; CHECK-NEXT: rotldi 3, 3, 57 212*a4558a4aSQiu Chaofan; CHECK-NEXT: rldimi 4, 3, 19, 25 213*a4558a4aSQiu Chaofan; CHECK-NEXT: mr 3, 4 214*a4558a4aSQiu Chaofan; CHECK-NEXT: blr 215*a4558a4aSQiu Chaofan %r = call i64 @llvm.ppc.rldimi(i64 %a, i64 %b, i32 12, i64 549755289600) ; mb=25, me=44 216*a4558a4aSQiu Chaofan ret i64 %r 217*a4558a4aSQiu Chaofan} 218*a4558a4aSQiu Chaofan 219*a4558a4aSQiu Chaofandefine i64 @rldimi19(i64 %a, i64 %b) { 220*a4558a4aSQiu Chaofan; CHECK-LABEL: rldimi19: 221*a4558a4aSQiu Chaofan; CHECK: # %bb.0: 222*a4558a4aSQiu Chaofan; CHECK-NEXT: rotldi 3, 3, 57 223*a4558a4aSQiu Chaofan; CHECK-NEXT: rldimi 4, 3, 19, 33 224*a4558a4aSQiu Chaofan; CHECK-NEXT: mr 3, 4 225*a4558a4aSQiu Chaofan; CHECK-NEXT: blr 226*a4558a4aSQiu Chaofan %r = call i64 @llvm.ppc.rldimi(i64 %a, i64 %b, i32 12, i64 2146959360) ; mb=33, me=44 227*a4558a4aSQiu Chaofan ret i64 %r 228*a4558a4aSQiu Chaofan} 229*a4558a4aSQiu Chaofan 230*a4558a4aSQiu Chaofandefine i64 @rldimi20(i64 %a, i64 %b) { 231*a4558a4aSQiu Chaofan; CHECK-LABEL: rldimi20: 232*a4558a4aSQiu Chaofan; CHECK: # %bb.0: 233*a4558a4aSQiu Chaofan; CHECK-NEXT: rotldi 3, 3, 23 234*a4558a4aSQiu Chaofan; CHECK-NEXT: rldimi 4, 3, 53, 15 235*a4558a4aSQiu Chaofan; CHECK-NEXT: mr 3, 4 236*a4558a4aSQiu Chaofan; CHECK-NEXT: blr 237*a4558a4aSQiu Chaofan %r = call i64 @llvm.ppc.rldimi(i64 %a, i64 %b, i32 12, i64 18438299824408231935) ; mb=15, me=10 238*a4558a4aSQiu Chaofan ret i64 %r 239*a4558a4aSQiu Chaofan} 240*a4558a4aSQiu Chaofan 241*a4558a4aSQiu Chaofandefine i64 @rldimi21(i64 %a, i64 %b) { 242*a4558a4aSQiu Chaofan; CHECK-LABEL: rldimi21: 243*a4558a4aSQiu Chaofan; CHECK: # %bb.0: 244*a4558a4aSQiu Chaofan; CHECK-NEXT: rotldi 3, 3, 23 245*a4558a4aSQiu Chaofan; CHECK-NEXT: rldimi 4, 3, 53, 25 246*a4558a4aSQiu Chaofan; CHECK-NEXT: mr 3, 4 247*a4558a4aSQiu Chaofan; CHECK-NEXT: blr 248*a4558a4aSQiu Chaofan %r = call i64 @llvm.ppc.rldimi(i64 %a, i64 %b, i32 12, i64 18437737424210624511) ; mb=25, me=10 249*a4558a4aSQiu Chaofan ret i64 %r 250*a4558a4aSQiu Chaofan} 251*a4558a4aSQiu Chaofan 252*a4558a4aSQiu Chaofandefine i64 @rldimi22(i64 %a, i64 %b) { 253*a4558a4aSQiu Chaofan; CHECK-LABEL: rldimi22: 254*a4558a4aSQiu Chaofan; CHECK: # %bb.0: 255*a4558a4aSQiu Chaofan; CHECK-NEXT: rotldi 3, 3, 34 256*a4558a4aSQiu Chaofan; CHECK-NEXT: rldimi 4, 3, 42, 25 257*a4558a4aSQiu Chaofan; CHECK-NEXT: mr 3, 4 258*a4558a4aSQiu Chaofan; CHECK-NEXT: blr 259*a4558a4aSQiu Chaofan %r = call i64 @llvm.ppc.rldimi(i64 %a, i64 %b, i32 12, i64 18446740225418854399) ; mb=25, me=21 260*a4558a4aSQiu Chaofan ret i64 %r 261*a4558a4aSQiu Chaofan} 262*a4558a4aSQiu Chaofan 263*a4558a4aSQiu Chaofandefine i64 @rldimi23(i64 %a, i64 %b) { 264*a4558a4aSQiu Chaofan; CHECK-LABEL: rldimi23: 265*a4558a4aSQiu Chaofan; CHECK: # %bb.0: 266*a4558a4aSQiu Chaofan; CHECK-NEXT: rotldi 3, 3, 23 267*a4558a4aSQiu Chaofan; CHECK-NEXT: rldimi 4, 3, 53, 44 268*a4558a4aSQiu Chaofan; CHECK-NEXT: mr 3, 4 269*a4558a4aSQiu Chaofan; CHECK-NEXT: blr 270*a4558a4aSQiu Chaofan %r = call i64 @llvm.ppc.rldimi(i64 %a, i64 %b, i32 12, i64 18437736874455859199) ; mb=44, me=10 271*a4558a4aSQiu Chaofan ret i64 %r 272*a4558a4aSQiu Chaofan} 273*a4558a4aSQiu Chaofan 274*a4558a4aSQiu Chaofandefine i64 @rldimi24(i64 %a, i64 %b) { 275*a4558a4aSQiu Chaofan; CHECK-LABEL: rldimi24: 276*a4558a4aSQiu Chaofan; CHECK: # %bb.0: 277*a4558a4aSQiu Chaofan; CHECK-NEXT: rotldi 3, 3, 38 278*a4558a4aSQiu Chaofan; CHECK-NEXT: rldimi 4, 3, 38, 44 279*a4558a4aSQiu Chaofan; CHECK-NEXT: mr 3, 4 280*a4558a4aSQiu Chaofan; CHECK-NEXT: blr 281*a4558a4aSQiu Chaofan %r = call i64 @llvm.ppc.rldimi(i64 %a, i64 %b, i32 12, i64 18446743798832693247) ; mb=44, me=25 282*a4558a4aSQiu Chaofan ret i64 %r 283*a4558a4aSQiu Chaofan} 284*a4558a4aSQiu Chaofan 285*a4558a4aSQiu Chaofandefine i64 @rldimi25(i64 %a, i64 %b) { 286*a4558a4aSQiu Chaofan; CHECK-LABEL: rldimi25: 287*a4558a4aSQiu Chaofan; CHECK: # %bb.0: 288*a4558a4aSQiu Chaofan; CHECK-NEXT: rotldi 3, 3, 48 289*a4558a4aSQiu Chaofan; CHECK-NEXT: rldimi 4, 3, 28, 44 290*a4558a4aSQiu Chaofan; CHECK-NEXT: mr 3, 4 291*a4558a4aSQiu Chaofan; CHECK-NEXT: blr 292*a4558a4aSQiu Chaofan %r = call i64 @llvm.ppc.rldimi(i64 %a, i64 %b, i32 12, i64 18446744073442164735) ; mb=44, me=35 293*a4558a4aSQiu Chaofan ret i64 %r 294*a4558a4aSQiu Chaofan} 295*a4558a4aSQiu Chaofan 296906580baSQiu Chaofandeclare i64 @llvm.ppc.rldimi(i64, i64, i32 immarg, i64 immarg) 297