brintos

brintos / llvm-project-archived public Read only

0
0
Text · 21.4 KiB · 79b937a Raw
621 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=riscv32 -verify-machineinstrs < %s \3; RUN:   | FileCheck %s -check-prefixes=RV32,RV32I4; RUN: llc -mtriple=riscv32 -verify-machineinstrs -mattr=+experimental-xqcilia < %s \5; RUN:   | FileCheck %s -check-prefixes=RV32XQCILIA6; RUN: llc -mtriple=riscv32 -verify-machineinstrs -mattr=+zba < %s \7; RUN:   | FileCheck %s -check-prefixes=RV32,RV32ZBA8; RUN: llc -mtriple=riscv64 -verify-machineinstrs < %s \9; RUN:   | FileCheck %s -check-prefixes=RV64,RV64I10; RUN: llc -mtriple=riscv64 -verify-machineinstrs -mattr=+zba < %s \11; RUN:   | FileCheck %s -check-prefixes=RV64,RV64ZBA12 13declare void @inspect(...)14 15define void @test() {16; RV32I-LABEL: test:17; RV32I:       # %bb.0:18; RV32I-NEXT:    addi sp, sp, -203219; RV32I-NEXT:    .cfi_def_cfa_offset 203220; RV32I-NEXT:    sw ra, 2028(sp) # 4-byte Folded Spill21; RV32I-NEXT:    .cfi_offset ra, -422; RV32I-NEXT:    addi sp, sp, -204823; RV32I-NEXT:    addi sp, sp, -112024; RV32I-NEXT:    .cfi_def_cfa_offset 520025; RV32I-NEXT:    addi a0, sp, 1226; RV32I-NEXT:    addi a1, sp, 204727; RV32I-NEXT:    addi a1, a1, 1328; RV32I-NEXT:    lui a2, 129; RV32I-NEXT:    addi a2, a2, 1230; RV32I-NEXT:    add a2, sp, a231; RV32I-NEXT:    lui a3, 132; RV32I-NEXT:    addi a3, a3, 103633; RV32I-NEXT:    add a3, sp, a334; RV32I-NEXT:    call inspect35; RV32I-NEXT:    addi sp, sp, 203236; RV32I-NEXT:    addi sp, sp, 113637; RV32I-NEXT:    .cfi_def_cfa_offset 203238; RV32I-NEXT:    lw ra, 2028(sp) # 4-byte Folded Reload39; RV32I-NEXT:    .cfi_restore ra40; RV32I-NEXT:    addi sp, sp, 203241; RV32I-NEXT:    .cfi_def_cfa_offset 042; RV32I-NEXT:    ret43;44; RV32XQCILIA-LABEL: test:45; RV32XQCILIA:       # %bb.0:46; RV32XQCILIA-NEXT:    addi sp, sp, -203247; RV32XQCILIA-NEXT:    .cfi_def_cfa_offset 203248; RV32XQCILIA-NEXT:    sw ra, 2028(sp) # 4-byte Folded Spill49; RV32XQCILIA-NEXT:    .cfi_offset ra, -450; RV32XQCILIA-NEXT:    qc.e.addi sp, sp, -316851; RV32XQCILIA-NEXT:    .cfi_def_cfa_offset 520052; RV32XQCILIA-NEXT:    addi a0, sp, 1253; RV32XQCILIA-NEXT:    qc.e.addi a1, sp, 206054; RV32XQCILIA-NEXT:    qc.e.addi a2, sp, 410855; RV32XQCILIA-NEXT:    qc.e.addi a3, sp, 513256; RV32XQCILIA-NEXT:    call inspect57; RV32XQCILIA-NEXT:    qc.e.addi sp, sp, 316858; RV32XQCILIA-NEXT:    .cfi_def_cfa_offset 203259; RV32XQCILIA-NEXT:    lw ra, 2028(sp) # 4-byte Folded Reload60; RV32XQCILIA-NEXT:    .cfi_restore ra61; RV32XQCILIA-NEXT:    addi sp, sp, 203262; RV32XQCILIA-NEXT:    .cfi_def_cfa_offset 063; RV32XQCILIA-NEXT:    ret64;65; RV32ZBA-LABEL: test:66; RV32ZBA:       # %bb.0:67; RV32ZBA-NEXT:    addi sp, sp, -203268; RV32ZBA-NEXT:    .cfi_def_cfa_offset 203269; RV32ZBA-NEXT:    sw ra, 2028(sp) # 4-byte Folded Spill70; RV32ZBA-NEXT:    .cfi_offset ra, -471; RV32ZBA-NEXT:    addi sp, sp, -204872; RV32ZBA-NEXT:    addi sp, sp, -112073; RV32ZBA-NEXT:    .cfi_def_cfa_offset 520074; RV32ZBA-NEXT:    addi a0, sp, 1275; RV32ZBA-NEXT:    addi a1, sp, 204776; RV32ZBA-NEXT:    addi a1, a1, 1377; RV32ZBA-NEXT:    li a2, 102778; RV32ZBA-NEXT:    sh2add a2, a2, sp79; RV32ZBA-NEXT:    li a3, 128380; RV32ZBA-NEXT:    sh2add a3, a3, sp81; RV32ZBA-NEXT:    call inspect82; RV32ZBA-NEXT:    addi sp, sp, 203283; RV32ZBA-NEXT:    addi sp, sp, 113684; RV32ZBA-NEXT:    .cfi_def_cfa_offset 203285; RV32ZBA-NEXT:    lw ra, 2028(sp) # 4-byte Folded Reload86; RV32ZBA-NEXT:    .cfi_restore ra87; RV32ZBA-NEXT:    addi sp, sp, 203288; RV32ZBA-NEXT:    .cfi_def_cfa_offset 089; RV32ZBA-NEXT:    ret90;91; RV64I-LABEL: test:92; RV64I:       # %bb.0:93; RV64I-NEXT:    addi sp, sp, -203294; RV64I-NEXT:    .cfi_def_cfa_offset 203295; RV64I-NEXT:    sd ra, 2024(sp) # 8-byte Folded Spill96; RV64I-NEXT:    .cfi_offset ra, -897; RV64I-NEXT:    addi sp, sp, -204898; RV64I-NEXT:    addi sp, sp, -112099; RV64I-NEXT:    .cfi_def_cfa_offset 5200100; RV64I-NEXT:    addi a0, sp, 8101; RV64I-NEXT:    addi a1, sp, 2047102; RV64I-NEXT:    addi a1, a1, 9103; RV64I-NEXT:    lui a2, 1104; RV64I-NEXT:    addi a2, a2, 8105; RV64I-NEXT:    add a2, sp, a2106; RV64I-NEXT:    lui a3, 1107; RV64I-NEXT:    addi a3, a3, 1032108; RV64I-NEXT:    add a3, sp, a3109; RV64I-NEXT:    call inspect110; RV64I-NEXT:    addi sp, sp, 2032111; RV64I-NEXT:    addi sp, sp, 1136112; RV64I-NEXT:    .cfi_def_cfa_offset 2032113; RV64I-NEXT:    ld ra, 2024(sp) # 8-byte Folded Reload114; RV64I-NEXT:    .cfi_restore ra115; RV64I-NEXT:    addi sp, sp, 2032116; RV64I-NEXT:    .cfi_def_cfa_offset 0117; RV64I-NEXT:    ret118;119; RV64ZBA-LABEL: test:120; RV64ZBA:       # %bb.0:121; RV64ZBA-NEXT:    addi sp, sp, -2032122; RV64ZBA-NEXT:    .cfi_def_cfa_offset 2032123; RV64ZBA-NEXT:    sd ra, 2024(sp) # 8-byte Folded Spill124; RV64ZBA-NEXT:    .cfi_offset ra, -8125; RV64ZBA-NEXT:    addi sp, sp, -2048126; RV64ZBA-NEXT:    addi sp, sp, -1120127; RV64ZBA-NEXT:    .cfi_def_cfa_offset 5200128; RV64ZBA-NEXT:    addi a0, sp, 8129; RV64ZBA-NEXT:    addi a1, sp, 2047130; RV64ZBA-NEXT:    addi a1, a1, 9131; RV64ZBA-NEXT:    li a2, 513132; RV64ZBA-NEXT:    sh3add a2, a2, sp133; RV64ZBA-NEXT:    li a3, 641134; RV64ZBA-NEXT:    sh3add a3, a3, sp135; RV64ZBA-NEXT:    call inspect136; RV64ZBA-NEXT:    addi sp, sp, 2032137; RV64ZBA-NEXT:    addi sp, sp, 1136138; RV64ZBA-NEXT:    .cfi_def_cfa_offset 2032139; RV64ZBA-NEXT:    ld ra, 2024(sp) # 8-byte Folded Reload140; RV64ZBA-NEXT:    .cfi_restore ra141; RV64ZBA-NEXT:    addi sp, sp, 2032142; RV64ZBA-NEXT:    .cfi_def_cfa_offset 0143; RV64ZBA-NEXT:    ret144  %p4 = alloca [64 x i8], align 1145  %p3 = alloca [1024 x i8], align 1146  %p2 = alloca [2048 x i8], align 1147  %p1 = alloca [2048 x i8], align 1148  call void (...) @inspect(ptr %p1, ptr %p2, ptr %p3, ptr %p4)149  ret void150}151 152define void @align_8() {153; RV32I-LABEL: align_8:154; RV32I:       # %bb.0:155; RV32I-NEXT:    addi sp, sp, -2032156; RV32I-NEXT:    .cfi_def_cfa_offset 2032157; RV32I-NEXT:    sw ra, 2028(sp) # 4-byte Folded Spill158; RV32I-NEXT:    .cfi_offset ra, -4159; RV32I-NEXT:    addi sp, sp, -2048160; RV32I-NEXT:    addi sp, sp, -32161; RV32I-NEXT:    .cfi_def_cfa_offset 4112162; RV32I-NEXT:    addi a0, sp, 7163; RV32I-NEXT:    lui a1, 1164; RV32I-NEXT:    addi a1, a1, 8165; RV32I-NEXT:    add a1, sp, a1166; RV32I-NEXT:    call inspect167; RV32I-NEXT:    addi sp, sp, 2032168; RV32I-NEXT:    addi sp, sp, 48169; RV32I-NEXT:    .cfi_def_cfa_offset 2032170; RV32I-NEXT:    lw ra, 2028(sp) # 4-byte Folded Reload171; RV32I-NEXT:    .cfi_restore ra172; RV32I-NEXT:    addi sp, sp, 2032173; RV32I-NEXT:    .cfi_def_cfa_offset 0174; RV32I-NEXT:    ret175;176; RV32XQCILIA-LABEL: align_8:177; RV32XQCILIA:       # %bb.0:178; RV32XQCILIA-NEXT:    addi sp, sp, -256179; RV32XQCILIA-NEXT:    .cfi_def_cfa_offset 256180; RV32XQCILIA-NEXT:    sw ra, 252(sp) # 4-byte Folded Spill181; RV32XQCILIA-NEXT:    .cfi_offset ra, -4182; RV32XQCILIA-NEXT:    qc.e.addi sp, sp, -3856183; RV32XQCILIA-NEXT:    .cfi_def_cfa_offset 4112184; RV32XQCILIA-NEXT:    addi a0, sp, 7185; RV32XQCILIA-NEXT:    qc.e.addi a1, sp, 4104186; RV32XQCILIA-NEXT:    call inspect187; RV32XQCILIA-NEXT:    qc.e.addi sp, sp, 3856188; RV32XQCILIA-NEXT:    .cfi_def_cfa_offset 256189; RV32XQCILIA-NEXT:    lw ra, 252(sp) # 4-byte Folded Reload190; RV32XQCILIA-NEXT:    .cfi_restore ra191; RV32XQCILIA-NEXT:    addi sp, sp, 256192; RV32XQCILIA-NEXT:    .cfi_def_cfa_offset 0193; RV32XQCILIA-NEXT:    ret194;195; RV32ZBA-LABEL: align_8:196; RV32ZBA:       # %bb.0:197; RV32ZBA-NEXT:    addi sp, sp, -2032198; RV32ZBA-NEXT:    .cfi_def_cfa_offset 2032199; RV32ZBA-NEXT:    sw ra, 2028(sp) # 4-byte Folded Spill200; RV32ZBA-NEXT:    .cfi_offset ra, -4201; RV32ZBA-NEXT:    addi sp, sp, -2048202; RV32ZBA-NEXT:    addi sp, sp, -32203; RV32ZBA-NEXT:    .cfi_def_cfa_offset 4112204; RV32ZBA-NEXT:    addi a0, sp, 7205; RV32ZBA-NEXT:    li a1, 513206; RV32ZBA-NEXT:    sh3add a1, a1, sp207; RV32ZBA-NEXT:    call inspect208; RV32ZBA-NEXT:    addi sp, sp, 2032209; RV32ZBA-NEXT:    addi sp, sp, 48210; RV32ZBA-NEXT:    .cfi_def_cfa_offset 2032211; RV32ZBA-NEXT:    lw ra, 2028(sp) # 4-byte Folded Reload212; RV32ZBA-NEXT:    .cfi_restore ra213; RV32ZBA-NEXT:    addi sp, sp, 2032214; RV32ZBA-NEXT:    .cfi_def_cfa_offset 0215; RV32ZBA-NEXT:    ret216;217; RV64I-LABEL: align_8:218; RV64I:       # %bb.0:219; RV64I-NEXT:    addi sp, sp, -2032220; RV64I-NEXT:    .cfi_def_cfa_offset 2032221; RV64I-NEXT:    sd ra, 2024(sp) # 8-byte Folded Spill222; RV64I-NEXT:    .cfi_offset ra, -8223; RV64I-NEXT:    addi sp, sp, -2048224; RV64I-NEXT:    addi sp, sp, -48225; RV64I-NEXT:    .cfi_def_cfa_offset 4128226; RV64I-NEXT:    addi a0, sp, 15227; RV64I-NEXT:    lui a1, 1228; RV64I-NEXT:    addi a1, a1, 16229; RV64I-NEXT:    add a1, sp, a1230; RV64I-NEXT:    call inspect231; RV64I-NEXT:    addi sp, sp, 2032232; RV64I-NEXT:    addi sp, sp, 64233; RV64I-NEXT:    .cfi_def_cfa_offset 2032234; RV64I-NEXT:    ld ra, 2024(sp) # 8-byte Folded Reload235; RV64I-NEXT:    .cfi_restore ra236; RV64I-NEXT:    addi sp, sp, 2032237; RV64I-NEXT:    .cfi_def_cfa_offset 0238; RV64I-NEXT:    ret239;240; RV64ZBA-LABEL: align_8:241; RV64ZBA:       # %bb.0:242; RV64ZBA-NEXT:    addi sp, sp, -2032243; RV64ZBA-NEXT:    .cfi_def_cfa_offset 2032244; RV64ZBA-NEXT:    sd ra, 2024(sp) # 8-byte Folded Spill245; RV64ZBA-NEXT:    .cfi_offset ra, -8246; RV64ZBA-NEXT:    addi sp, sp, -2048247; RV64ZBA-NEXT:    addi sp, sp, -48248; RV64ZBA-NEXT:    .cfi_def_cfa_offset 4128249; RV64ZBA-NEXT:    addi a0, sp, 15250; RV64ZBA-NEXT:    li a1, 514251; RV64ZBA-NEXT:    sh3add a1, a1, sp252; RV64ZBA-NEXT:    call inspect253; RV64ZBA-NEXT:    addi sp, sp, 2032254; RV64ZBA-NEXT:    addi sp, sp, 64255; RV64ZBA-NEXT:    .cfi_def_cfa_offset 2032256; RV64ZBA-NEXT:    ld ra, 2024(sp) # 8-byte Folded Reload257; RV64ZBA-NEXT:    .cfi_restore ra258; RV64ZBA-NEXT:    addi sp, sp, 2032259; RV64ZBA-NEXT:    .cfi_def_cfa_offset 0260; RV64ZBA-NEXT:    ret261  %p2 = alloca i8, align 8262  %p1 = alloca [4097 x i8], align 1263  call void (...) @inspect(ptr %p1, ptr %p2)264  ret void265}266 267define void @align_4() {268; RV32I-LABEL: align_4:269; RV32I:       # %bb.0:270; RV32I-NEXT:    addi sp, sp, -2032271; RV32I-NEXT:    .cfi_def_cfa_offset 2032272; RV32I-NEXT:    sw ra, 2028(sp) # 4-byte Folded Spill273; RV32I-NEXT:    .cfi_offset ra, -4274; RV32I-NEXT:    addi sp, sp, -2048275; RV32I-NEXT:    addi sp, sp, -32276; RV32I-NEXT:    .cfi_def_cfa_offset 4112277; RV32I-NEXT:    addi a0, sp, 7278; RV32I-NEXT:    lui a1, 1279; RV32I-NEXT:    addi a1, a1, 8280; RV32I-NEXT:    add a1, sp, a1281; RV32I-NEXT:    call inspect282; RV32I-NEXT:    addi sp, sp, 2032283; RV32I-NEXT:    addi sp, sp, 48284; RV32I-NEXT:    .cfi_def_cfa_offset 2032285; RV32I-NEXT:    lw ra, 2028(sp) # 4-byte Folded Reload286; RV32I-NEXT:    .cfi_restore ra287; RV32I-NEXT:    addi sp, sp, 2032288; RV32I-NEXT:    .cfi_def_cfa_offset 0289; RV32I-NEXT:    ret290;291; RV32XQCILIA-LABEL: align_4:292; RV32XQCILIA:       # %bb.0:293; RV32XQCILIA-NEXT:    addi sp, sp, -256294; RV32XQCILIA-NEXT:    .cfi_def_cfa_offset 256295; RV32XQCILIA-NEXT:    sw ra, 252(sp) # 4-byte Folded Spill296; RV32XQCILIA-NEXT:    .cfi_offset ra, -4297; RV32XQCILIA-NEXT:    qc.e.addi sp, sp, -3856298; RV32XQCILIA-NEXT:    .cfi_def_cfa_offset 4112299; RV32XQCILIA-NEXT:    addi a0, sp, 7300; RV32XQCILIA-NEXT:    qc.e.addi a1, sp, 4104301; RV32XQCILIA-NEXT:    call inspect302; RV32XQCILIA-NEXT:    qc.e.addi sp, sp, 3856303; RV32XQCILIA-NEXT:    .cfi_def_cfa_offset 256304; RV32XQCILIA-NEXT:    lw ra, 252(sp) # 4-byte Folded Reload305; RV32XQCILIA-NEXT:    .cfi_restore ra306; RV32XQCILIA-NEXT:    addi sp, sp, 256307; RV32XQCILIA-NEXT:    .cfi_def_cfa_offset 0308; RV32XQCILIA-NEXT:    ret309;310; RV32ZBA-LABEL: align_4:311; RV32ZBA:       # %bb.0:312; RV32ZBA-NEXT:    addi sp, sp, -2032313; RV32ZBA-NEXT:    .cfi_def_cfa_offset 2032314; RV32ZBA-NEXT:    sw ra, 2028(sp) # 4-byte Folded Spill315; RV32ZBA-NEXT:    .cfi_offset ra, -4316; RV32ZBA-NEXT:    addi sp, sp, -2048317; RV32ZBA-NEXT:    addi sp, sp, -32318; RV32ZBA-NEXT:    .cfi_def_cfa_offset 4112319; RV32ZBA-NEXT:    addi a0, sp, 7320; RV32ZBA-NEXT:    li a1, 513321; RV32ZBA-NEXT:    sh3add a1, a1, sp322; RV32ZBA-NEXT:    call inspect323; RV32ZBA-NEXT:    addi sp, sp, 2032324; RV32ZBA-NEXT:    addi sp, sp, 48325; RV32ZBA-NEXT:    .cfi_def_cfa_offset 2032326; RV32ZBA-NEXT:    lw ra, 2028(sp) # 4-byte Folded Reload327; RV32ZBA-NEXT:    .cfi_restore ra328; RV32ZBA-NEXT:    addi sp, sp, 2032329; RV32ZBA-NEXT:    .cfi_def_cfa_offset 0330; RV32ZBA-NEXT:    ret331;332; RV64I-LABEL: align_4:333; RV64I:       # %bb.0:334; RV64I-NEXT:    addi sp, sp, -2032335; RV64I-NEXT:    .cfi_def_cfa_offset 2032336; RV64I-NEXT:    sd ra, 2024(sp) # 8-byte Folded Spill337; RV64I-NEXT:    .cfi_offset ra, -8338; RV64I-NEXT:    addi sp, sp, -2048339; RV64I-NEXT:    addi sp, sp, -48340; RV64I-NEXT:    .cfi_def_cfa_offset 4128341; RV64I-NEXT:    addi a0, sp, 19342; RV64I-NEXT:    lui a1, 1343; RV64I-NEXT:    addi a1, a1, 20344; RV64I-NEXT:    add a1, sp, a1345; RV64I-NEXT:    call inspect346; RV64I-NEXT:    addi sp, sp, 2032347; RV64I-NEXT:    addi sp, sp, 64348; RV64I-NEXT:    .cfi_def_cfa_offset 2032349; RV64I-NEXT:    ld ra, 2024(sp) # 8-byte Folded Reload350; RV64I-NEXT:    .cfi_restore ra351; RV64I-NEXT:    addi sp, sp, 2032352; RV64I-NEXT:    .cfi_def_cfa_offset 0353; RV64I-NEXT:    ret354;355; RV64ZBA-LABEL: align_4:356; RV64ZBA:       # %bb.0:357; RV64ZBA-NEXT:    addi sp, sp, -2032358; RV64ZBA-NEXT:    .cfi_def_cfa_offset 2032359; RV64ZBA-NEXT:    sd ra, 2024(sp) # 8-byte Folded Spill360; RV64ZBA-NEXT:    .cfi_offset ra, -8361; RV64ZBA-NEXT:    addi sp, sp, -2048362; RV64ZBA-NEXT:    addi sp, sp, -48363; RV64ZBA-NEXT:    .cfi_def_cfa_offset 4128364; RV64ZBA-NEXT:    addi a0, sp, 19365; RV64ZBA-NEXT:    li a1, 1029366; RV64ZBA-NEXT:    sh2add a1, a1, sp367; RV64ZBA-NEXT:    call inspect368; RV64ZBA-NEXT:    addi sp, sp, 2032369; RV64ZBA-NEXT:    addi sp, sp, 64370; RV64ZBA-NEXT:    .cfi_def_cfa_offset 2032371; RV64ZBA-NEXT:    ld ra, 2024(sp) # 8-byte Folded Reload372; RV64ZBA-NEXT:    .cfi_restore ra373; RV64ZBA-NEXT:    addi sp, sp, 2032374; RV64ZBA-NEXT:    .cfi_def_cfa_offset 0375; RV64ZBA-NEXT:    ret376  %p2 = alloca i8, align 4377  %p1 = alloca [4097 x i8], align 1378  call void (...) @inspect(ptr %p1, ptr %p2)379  ret void380}381 382define void @align_2() {383; RV32-LABEL: align_2:384; RV32:       # %bb.0:385; RV32-NEXT:    addi sp, sp, -2032386; RV32-NEXT:    .cfi_def_cfa_offset 2032387; RV32-NEXT:    sw ra, 2028(sp) # 4-byte Folded Spill388; RV32-NEXT:    .cfi_offset ra, -4389; RV32-NEXT:    addi sp, sp, -2048390; RV32-NEXT:    addi sp, sp, -32391; RV32-NEXT:    .cfi_def_cfa_offset 4112392; RV32-NEXT:    addi a0, sp, 9393; RV32-NEXT:    lui a1, 1394; RV32-NEXT:    addi a1, a1, 10395; RV32-NEXT:    add a1, sp, a1396; RV32-NEXT:    call inspect397; RV32-NEXT:    addi sp, sp, 2032398; RV32-NEXT:    addi sp, sp, 48399; RV32-NEXT:    .cfi_def_cfa_offset 2032400; RV32-NEXT:    lw ra, 2028(sp) # 4-byte Folded Reload401; RV32-NEXT:    .cfi_restore ra402; RV32-NEXT:    addi sp, sp, 2032403; RV32-NEXT:    .cfi_def_cfa_offset 0404; RV32-NEXT:    ret405;406; RV32XQCILIA-LABEL: align_2:407; RV32XQCILIA:       # %bb.0:408; RV32XQCILIA-NEXT:    addi sp, sp, -256409; RV32XQCILIA-NEXT:    .cfi_def_cfa_offset 256410; RV32XQCILIA-NEXT:    sw ra, 252(sp) # 4-byte Folded Spill411; RV32XQCILIA-NEXT:    .cfi_offset ra, -4412; RV32XQCILIA-NEXT:    qc.e.addi sp, sp, -3856413; RV32XQCILIA-NEXT:    .cfi_def_cfa_offset 4112414; RV32XQCILIA-NEXT:    addi a0, sp, 9415; RV32XQCILIA-NEXT:    qc.e.addi a1, sp, 4106416; RV32XQCILIA-NEXT:    call inspect417; RV32XQCILIA-NEXT:    qc.e.addi sp, sp, 3856418; RV32XQCILIA-NEXT:    .cfi_def_cfa_offset 256419; RV32XQCILIA-NEXT:    lw ra, 252(sp) # 4-byte Folded Reload420; RV32XQCILIA-NEXT:    .cfi_restore ra421; RV32XQCILIA-NEXT:    addi sp, sp, 256422; RV32XQCILIA-NEXT:    .cfi_def_cfa_offset 0423; RV32XQCILIA-NEXT:    ret424;425; RV64-LABEL: align_2:426; RV64:       # %bb.0:427; RV64-NEXT:    addi sp, sp, -2032428; RV64-NEXT:    .cfi_def_cfa_offset 2032429; RV64-NEXT:    sd ra, 2024(sp) # 8-byte Folded Spill430; RV64-NEXT:    .cfi_offset ra, -8431; RV64-NEXT:    addi sp, sp, -2048432; RV64-NEXT:    addi sp, sp, -48433; RV64-NEXT:    .cfi_def_cfa_offset 4128434; RV64-NEXT:    addi a0, sp, 21435; RV64-NEXT:    lui a1, 1436; RV64-NEXT:    addi a1, a1, 22437; RV64-NEXT:    add a1, sp, a1438; RV64-NEXT:    call inspect439; RV64-NEXT:    addi sp, sp, 2032440; RV64-NEXT:    addi sp, sp, 64441; RV64-NEXT:    .cfi_def_cfa_offset 2032442; RV64-NEXT:    ld ra, 2024(sp) # 8-byte Folded Reload443; RV64-NEXT:    .cfi_restore ra444; RV64-NEXT:    addi sp, sp, 2032445; RV64-NEXT:    .cfi_def_cfa_offset 0446; RV64-NEXT:    ret447  %p2 = alloca i8, align 2448  %p1 = alloca [4097 x i8], align 1449  call void (...) @inspect(ptr %p1, ptr %p2)450  ret void451}452 453 454define void @align_1() {455; RV32-LABEL: align_1:456; RV32:       # %bb.0:457; RV32-NEXT:    addi sp, sp, -2032458; RV32-NEXT:    .cfi_def_cfa_offset 2032459; RV32-NEXT:    sw ra, 2028(sp) # 4-byte Folded Spill460; RV32-NEXT:    .cfi_offset ra, -4461; RV32-NEXT:    addi sp, sp, -2048462; RV32-NEXT:    addi sp, sp, -32463; RV32-NEXT:    .cfi_def_cfa_offset 4112464; RV32-NEXT:    addi a0, sp, 10465; RV32-NEXT:    lui a1, 1466; RV32-NEXT:    addi a1, a1, 11467; RV32-NEXT:    add a1, sp, a1468; RV32-NEXT:    call inspect469; RV32-NEXT:    addi sp, sp, 2032470; RV32-NEXT:    addi sp, sp, 48471; RV32-NEXT:    .cfi_def_cfa_offset 2032472; RV32-NEXT:    lw ra, 2028(sp) # 4-byte Folded Reload473; RV32-NEXT:    .cfi_restore ra474; RV32-NEXT:    addi sp, sp, 2032475; RV32-NEXT:    .cfi_def_cfa_offset 0476; RV32-NEXT:    ret477;478; RV32XQCILIA-LABEL: align_1:479; RV32XQCILIA:       # %bb.0:480; RV32XQCILIA-NEXT:    addi sp, sp, -256481; RV32XQCILIA-NEXT:    .cfi_def_cfa_offset 256482; RV32XQCILIA-NEXT:    sw ra, 252(sp) # 4-byte Folded Spill483; RV32XQCILIA-NEXT:    .cfi_offset ra, -4484; RV32XQCILIA-NEXT:    qc.e.addi sp, sp, -3856485; RV32XQCILIA-NEXT:    .cfi_def_cfa_offset 4112486; RV32XQCILIA-NEXT:    addi a0, sp, 10487; RV32XQCILIA-NEXT:    qc.e.addi a1, sp, 4107488; RV32XQCILIA-NEXT:    call inspect489; RV32XQCILIA-NEXT:    qc.e.addi sp, sp, 3856490; RV32XQCILIA-NEXT:    .cfi_def_cfa_offset 256491; RV32XQCILIA-NEXT:    lw ra, 252(sp) # 4-byte Folded Reload492; RV32XQCILIA-NEXT:    .cfi_restore ra493; RV32XQCILIA-NEXT:    addi sp, sp, 256494; RV32XQCILIA-NEXT:    .cfi_def_cfa_offset 0495; RV32XQCILIA-NEXT:    ret496;497; RV64-LABEL: align_1:498; RV64:       # %bb.0:499; RV64-NEXT:    addi sp, sp, -2032500; RV64-NEXT:    .cfi_def_cfa_offset 2032501; RV64-NEXT:    sd ra, 2024(sp) # 8-byte Folded Spill502; RV64-NEXT:    .cfi_offset ra, -8503; RV64-NEXT:    addi sp, sp, -2048504; RV64-NEXT:    addi sp, sp, -48505; RV64-NEXT:    .cfi_def_cfa_offset 4128506; RV64-NEXT:    addi a0, sp, 22507; RV64-NEXT:    lui a1, 1508; RV64-NEXT:    addi a1, a1, 23509; RV64-NEXT:    add a1, sp, a1510; RV64-NEXT:    call inspect511; RV64-NEXT:    addi sp, sp, 2032512; RV64-NEXT:    addi sp, sp, 64513; RV64-NEXT:    .cfi_def_cfa_offset 2032514; RV64-NEXT:    ld ra, 2024(sp) # 8-byte Folded Reload515; RV64-NEXT:    .cfi_restore ra516; RV64-NEXT:    addi sp, sp, 2032517; RV64-NEXT:    .cfi_def_cfa_offset 0518; RV64-NEXT:    ret519  %p2 = alloca i8, align 1520  %p1 = alloca [4097 x i8], align 1521  call void (...) @inspect(ptr %p1, ptr %p2)522  ret void523}524 525define void @align_1_lui() {526; RV32-LABEL: align_1_lui:527; RV32:       # %bb.0:528; RV32-NEXT:    addi sp, sp, -2032529; RV32-NEXT:    .cfi_def_cfa_offset 2032530; RV32-NEXT:    sw ra, 2028(sp) # 4-byte Folded Spill531; RV32-NEXT:    .cfi_offset ra, -4532; RV32-NEXT:    lui a0, 1533; RV32-NEXT:    sub sp, sp, a0534; RV32-NEXT:    .cfi_def_cfa_offset 6128535; RV32-NEXT:    addi a0, sp, 8536; RV32-NEXT:    lui a1, 1537; RV32-NEXT:    addi a1, a1, 2027538; RV32-NEXT:    add a1, sp, a1539; RV32-NEXT:    call inspect540; RV32-NEXT:    lui a0, 1541; RV32-NEXT:    add sp, sp, a0542; RV32-NEXT:    .cfi_def_cfa_offset 2032543; RV32-NEXT:    lw ra, 2028(sp) # 4-byte Folded Reload544; RV32-NEXT:    .cfi_restore ra545; RV32-NEXT:    addi sp, sp, 2032546; RV32-NEXT:    .cfi_def_cfa_offset 0547; RV32-NEXT:    ret548;549; RV32XQCILIA-LABEL: align_1_lui:550; RV32XQCILIA:       # %bb.0:551; RV32XQCILIA-NEXT:    addi sp, sp, -2032552; RV32XQCILIA-NEXT:    .cfi_def_cfa_offset 2032553; RV32XQCILIA-NEXT:    sw ra, 2028(sp) # 4-byte Folded Spill554; RV32XQCILIA-NEXT:    .cfi_offset ra, -4555; RV32XQCILIA-NEXT:    qc.e.addi sp, sp, -4096556; RV32XQCILIA-NEXT:    .cfi_def_cfa_offset 6128557; RV32XQCILIA-NEXT:    addi a0, sp, 8558; RV32XQCILIA-NEXT:    qc.e.addi a1, sp, 6123559; RV32XQCILIA-NEXT:    call inspect560; RV32XQCILIA-NEXT:    lui a0, 1561; RV32XQCILIA-NEXT:    add sp, sp, a0562; RV32XQCILIA-NEXT:    .cfi_def_cfa_offset 2032563; RV32XQCILIA-NEXT:    lw ra, 2028(sp) # 4-byte Folded Reload564; RV32XQCILIA-NEXT:    .cfi_restore ra565; RV32XQCILIA-NEXT:    addi sp, sp, 2032566; RV32XQCILIA-NEXT:    .cfi_def_cfa_offset 0567; RV32XQCILIA-NEXT:    ret568;569; RV64I-LABEL: align_1_lui:570; RV64I:       # %bb.0:571; RV64I-NEXT:    addi sp, sp, -2032572; RV64I-NEXT:    .cfi_def_cfa_offset 2032573; RV64I-NEXT:    sd ra, 2024(sp) # 8-byte Folded Spill574; RV64I-NEXT:    .cfi_offset ra, -8575; RV64I-NEXT:    lui a0, 1576; RV64I-NEXT:    addi a0, a0, 16577; RV64I-NEXT:    sub sp, sp, a0578; RV64I-NEXT:    .cfi_def_cfa_offset 6144579; RV64I-NEXT:    addi a0, sp, 20580; RV64I-NEXT:    lui a1, 1581; RV64I-NEXT:    addi a1, a1, 2039582; RV64I-NEXT:    add a1, sp, a1583; RV64I-NEXT:    call inspect584; RV64I-NEXT:    lui a0, 1585; RV64I-NEXT:    addi a0, a0, 16586; RV64I-NEXT:    add sp, sp, a0587; RV64I-NEXT:    .cfi_def_cfa_offset 2032588; RV64I-NEXT:    ld ra, 2024(sp) # 8-byte Folded Reload589; RV64I-NEXT:    .cfi_restore ra590; RV64I-NEXT:    addi sp, sp, 2032591; RV64I-NEXT:    .cfi_def_cfa_offset 0592; RV64I-NEXT:    ret593;594; RV64ZBA-LABEL: align_1_lui:595; RV64ZBA:       # %bb.0:596; RV64ZBA-NEXT:    addi sp, sp, -2032597; RV64ZBA-NEXT:    .cfi_def_cfa_offset 2032598; RV64ZBA-NEXT:    sd ra, 2024(sp) # 8-byte Folded Spill599; RV64ZBA-NEXT:    .cfi_offset ra, -8600; RV64ZBA-NEXT:    li a0, -514601; RV64ZBA-NEXT:    sh3add sp, a0, sp602; RV64ZBA-NEXT:    .cfi_def_cfa_offset 6144603; RV64ZBA-NEXT:    addi a0, sp, 20604; RV64ZBA-NEXT:    lui a1, 1605; RV64ZBA-NEXT:    addi a1, a1, 2039606; RV64ZBA-NEXT:    add a1, sp, a1607; RV64ZBA-NEXT:    call inspect608; RV64ZBA-NEXT:    li a0, 514609; RV64ZBA-NEXT:    sh3add sp, a0, sp610; RV64ZBA-NEXT:    .cfi_def_cfa_offset 2032611; RV64ZBA-NEXT:    ld ra, 2024(sp) # 8-byte Folded Reload612; RV64ZBA-NEXT:    .cfi_restore ra613; RV64ZBA-NEXT:    addi sp, sp, 2032614; RV64ZBA-NEXT:    .cfi_def_cfa_offset 0615; RV64ZBA-NEXT:    ret616  %p2 = alloca i8, align 1617  %p1 = alloca [6115 x i8], align 1618  call void (...) @inspect(ptr %p1, ptr %p2)619  ret void620}621