6188 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc %s -o - | FileCheck %s --check-prefixes CHECK,SDAG3; RUN: llc %s -global-isel -global-isel-abort=1 -o - | FileCheck %s --check-prefixes CHECK,GISEL4target datalayout = "e-m:o-i64:64-i512:128-n32:64-S128"5target triple = "arm64-apple-macosx14.0.0"6 7define void @test_shl_i512(ptr %result, ptr %input, i32 %shift) {8; SDAG-LABEL: test_shl_i512:9; SDAG: ; %bb.0: ; %entry10; SDAG-NEXT: sub sp, sp, #12811; SDAG-NEXT: .cfi_def_cfa_offset 12812; SDAG-NEXT: ldp x9, x8, [x1, #48]13; SDAG-NEXT: movi.2d v0, #000000000000000014; SDAG-NEXT: ldp q1, q2, [x1]15; SDAG-NEXT: mvn w14, w216; SDAG-NEXT: ldr q3, [x1, #32]17; SDAG-NEXT: stp x9, x8, [sp, #112]18; SDAG-NEXT: mov w8, w219; SDAG-NEXT: mov x9, sp20; SDAG-NEXT: lsr x10, x8, #321; SDAG-NEXT: add x9, x9, #6422; SDAG-NEXT: stp q0, q0, [sp]23; SDAG-NEXT: stp q0, q0, [sp, #32]24; SDAG-NEXT: and x3, x8, #0x3f25; SDAG-NEXT: and x10, x10, #0x3826; SDAG-NEXT: stp q2, q3, [sp, #80]27; SDAG-NEXT: eor x3, x3, #0x3f28; SDAG-NEXT: sub x10, x9, x1029; SDAG-NEXT: str q1, [sp, #64]30; SDAG-NEXT: ldp x9, x11, [x10]31; SDAG-NEXT: ldp x13, x12, [x10, #16]32; SDAG-NEXT: ldp x17, x16, [x10, #32]33; SDAG-NEXT: ldp x10, x2, [x10, #48]34; SDAG-NEXT: lsr x15, x11, #135; SDAG-NEXT: lsr x1, x12, #136; SDAG-NEXT: lsl x11, x11, x837; SDAG-NEXT: lsl x12, x12, x838; SDAG-NEXT: lsr x4, x16, #139; SDAG-NEXT: lsr x15, x15, x1440; SDAG-NEXT: lsl x5, x17, x841; SDAG-NEXT: lsr x6, x10, #142; SDAG-NEXT: lsr x1, x1, x1443; SDAG-NEXT: lsl x10, x10, x844; SDAG-NEXT: lsr x14, x4, x1445; SDAG-NEXT: lsl x2, x2, x846; SDAG-NEXT: lsl x16, x16, x847; SDAG-NEXT: lsr x4, x6, x348; SDAG-NEXT: orr x1, x5, x149; SDAG-NEXT: orr x10, x10, x1450; SDAG-NEXT: lsr x14, x17, #151; SDAG-NEXT: orr x17, x2, x452; SDAG-NEXT: lsr x2, x9, #153; SDAG-NEXT: stp x10, x17, [x0, #48]54; SDAG-NEXT: lsr x10, x13, #155; SDAG-NEXT: lsr x14, x14, x356; SDAG-NEXT: lsl x13, x13, x857; SDAG-NEXT: lsl x8, x9, x858; SDAG-NEXT: lsr x10, x10, x359; SDAG-NEXT: orr x14, x16, x1460; SDAG-NEXT: lsr x16, x2, x361; SDAG-NEXT: orr x13, x13, x1562; SDAG-NEXT: stp x1, x14, [x0, #32]63; SDAG-NEXT: orr x10, x12, x1064; SDAG-NEXT: orr x9, x11, x1665; SDAG-NEXT: stp x13, x10, [x0, #16]66; SDAG-NEXT: stp x8, x9, [x0]67; SDAG-NEXT: add sp, sp, #12868; SDAG-NEXT: ret69;70; GISEL-LABEL: test_shl_i512:71; GISEL: ; %bb.0: ; %entry72; GISEL-NEXT: stp x28, x27, [sp, #-80]! ; 16-byte Folded Spill73; GISEL-NEXT: stp x26, x25, [sp, #16] ; 16-byte Folded Spill74; GISEL-NEXT: stp x24, x23, [sp, #32] ; 16-byte Folded Spill75; GISEL-NEXT: stp x22, x21, [sp, #48] ; 16-byte Folded Spill76; GISEL-NEXT: stp x20, x19, [sp, #64] ; 16-byte Folded Spill77; GISEL-NEXT: .cfi_def_cfa_offset 8078; GISEL-NEXT: .cfi_offset w19, -879; GISEL-NEXT: .cfi_offset w20, -1680; GISEL-NEXT: .cfi_offset w21, -2481; GISEL-NEXT: .cfi_offset w22, -3282; GISEL-NEXT: .cfi_offset w23, -4083; GISEL-NEXT: .cfi_offset w24, -4884; GISEL-NEXT: .cfi_offset w25, -5685; GISEL-NEXT: .cfi_offset w26, -6486; GISEL-NEXT: .cfi_offset w27, -7287; GISEL-NEXT: .cfi_offset w28, -8088; GISEL-NEXT: ldp x11, x15, [x1]89; GISEL-NEXT: mov w8, w290; GISEL-NEXT: lsr x9, x8, #691; GISEL-NEXT: and x14, x8, #0x3f92; GISEL-NEXT: mov w13, #64 ; =0x4093; GISEL-NEXT: sub x16, x13, x1494; GISEL-NEXT: ldp x3, x6, [x1, #16]95; GISEL-NEXT: lsl x10, x11, x1496; GISEL-NEXT: cmp x9, #097; GISEL-NEXT: ldp x20, x21, [x1, #32]98; GISEL-NEXT: csel x12, x10, xzr, eq99; GISEL-NEXT: cmp x9, #1100; GISEL-NEXT: csel x12, xzr, x12, eq101; GISEL-NEXT: cmp x9, #2102; GISEL-NEXT: csel x12, xzr, x12, eq103; GISEL-NEXT: cmp x9, #3104; GISEL-NEXT: lsr x26, x21, x16105; GISEL-NEXT: csel x12, xzr, x12, eq106; GISEL-NEXT: cmp x9, #4107; GISEL-NEXT: csel x12, xzr, x12, eq108; GISEL-NEXT: cmp x9, #5109; GISEL-NEXT: csel x12, xzr, x12, eq110; GISEL-NEXT: cmp x9, #6111; GISEL-NEXT: csel x12, xzr, x12, eq112; GISEL-NEXT: cmp x9, #7113; GISEL-NEXT: csel x13, xzr, x12, eq114; GISEL-NEXT: cmp x8, #0115; GISEL-NEXT: lsr x12, x11, x16116; GISEL-NEXT: csel x13, x11, x13, eq117; GISEL-NEXT: lsl x11, x15, x14118; GISEL-NEXT: tst x8, #0x3f119; GISEL-NEXT: csel x17, xzr, x12, eq120; GISEL-NEXT: cmp x9, #0121; GISEL-NEXT: orr x17, x11, x17122; GISEL-NEXT: csel x17, x17, xzr, eq123; GISEL-NEXT: cmp x9, #1124; GISEL-NEXT: csel x17, x10, x17, eq125; GISEL-NEXT: cmp x9, #2126; GISEL-NEXT: csel x17, xzr, x17, eq127; GISEL-NEXT: cmp x9, #3128; GISEL-NEXT: csel x17, xzr, x17, eq129; GISEL-NEXT: cmp x9, #4130; GISEL-NEXT: csel x17, xzr, x17, eq131; GISEL-NEXT: cmp x9, #5132; GISEL-NEXT: csel x17, xzr, x17, eq133; GISEL-NEXT: cmp x9, #6134; GISEL-NEXT: csel x17, xzr, x17, eq135; GISEL-NEXT: cmp x9, #7136; GISEL-NEXT: csel x2, xzr, x17, eq137; GISEL-NEXT: cmp x8, #0138; GISEL-NEXT: lsr x17, x15, x16139; GISEL-NEXT: csel x15, x15, x2, eq140; GISEL-NEXT: lsl x2, x3, x14141; GISEL-NEXT: tst x8, #0x3f142; GISEL-NEXT: csel x4, xzr, x17, eq143; GISEL-NEXT: cmp x9, #0144; GISEL-NEXT: orr x4, x2, x4145; GISEL-NEXT: csel x4, x4, xzr, eq146; GISEL-NEXT: tst x8, #0x3f147; GISEL-NEXT: csel x5, xzr, x12, eq148; GISEL-NEXT: cmp x9, #1149; GISEL-NEXT: orr x5, x11, x5150; GISEL-NEXT: csel x4, x5, x4, eq151; GISEL-NEXT: cmp x9, #2152; GISEL-NEXT: csel x4, x10, x4, eq153; GISEL-NEXT: cmp x9, #3154; GISEL-NEXT: csel x4, xzr, x4, eq155; GISEL-NEXT: cmp x9, #4156; GISEL-NEXT: csel x4, xzr, x4, eq157; GISEL-NEXT: cmp x9, #5158; GISEL-NEXT: csel x4, xzr, x4, eq159; GISEL-NEXT: cmp x9, #6160; GISEL-NEXT: csel x4, xzr, x4, eq161; GISEL-NEXT: cmp x9, #7162; GISEL-NEXT: csel x5, xzr, x4, eq163; GISEL-NEXT: cmp x8, #0164; GISEL-NEXT: lsr x4, x3, x16165; GISEL-NEXT: csel x3, x3, x5, eq166; GISEL-NEXT: lsl x5, x6, x14167; GISEL-NEXT: tst x8, #0x3f168; GISEL-NEXT: csel x7, xzr, x4, eq169; GISEL-NEXT: cmp x9, #0170; GISEL-NEXT: orr x7, x5, x7171; GISEL-NEXT: csel x7, x7, xzr, eq172; GISEL-NEXT: tst x8, #0x3f173; GISEL-NEXT: csel x19, xzr, x17, eq174; GISEL-NEXT: cmp x9, #1175; GISEL-NEXT: orr x19, x2, x19176; GISEL-NEXT: csel x7, x19, x7, eq177; GISEL-NEXT: tst x8, #0x3f178; GISEL-NEXT: csel x19, xzr, x12, eq179; GISEL-NEXT: cmp x9, #2180; GISEL-NEXT: orr x19, x11, x19181; GISEL-NEXT: csel x7, x19, x7, eq182; GISEL-NEXT: cmp x9, #3183; GISEL-NEXT: csel x7, x10, x7, eq184; GISEL-NEXT: cmp x9, #4185; GISEL-NEXT: csel x7, xzr, x7, eq186; GISEL-NEXT: cmp x9, #5187; GISEL-NEXT: csel x7, xzr, x7, eq188; GISEL-NEXT: cmp x9, #6189; GISEL-NEXT: csel x7, xzr, x7, eq190; GISEL-NEXT: cmp x9, #7191; GISEL-NEXT: csel x19, xzr, x7, eq192; GISEL-NEXT: cmp x8, #0193; GISEL-NEXT: lsr x7, x6, x16194; GISEL-NEXT: csel x6, x6, x19, eq195; GISEL-NEXT: lsl x19, x20, x14196; GISEL-NEXT: tst x8, #0x3f197; GISEL-NEXT: csel x22, xzr, x7, eq198; GISEL-NEXT: cmp x9, #0199; GISEL-NEXT: orr x22, x19, x22200; GISEL-NEXT: csel x22, x22, xzr, eq201; GISEL-NEXT: tst x8, #0x3f202; GISEL-NEXT: csel x23, xzr, x4, eq203; GISEL-NEXT: cmp x9, #1204; GISEL-NEXT: orr x23, x5, x23205; GISEL-NEXT: csel x22, x23, x22, eq206; GISEL-NEXT: tst x8, #0x3f207; GISEL-NEXT: csel x23, xzr, x17, eq208; GISEL-NEXT: cmp x9, #2209; GISEL-NEXT: orr x23, x2, x23210; GISEL-NEXT: csel x22, x23, x22, eq211; GISEL-NEXT: tst x8, #0x3f212; GISEL-NEXT: csel x23, xzr, x12, eq213; GISEL-NEXT: cmp x9, #3214; GISEL-NEXT: orr x23, x11, x23215; GISEL-NEXT: csel x22, x23, x22, eq216; GISEL-NEXT: cmp x9, #4217; GISEL-NEXT: csel x22, x10, x22, eq218; GISEL-NEXT: cmp x9, #5219; GISEL-NEXT: csel x22, xzr, x22, eq220; GISEL-NEXT: cmp x9, #6221; GISEL-NEXT: csel x22, xzr, x22, eq222; GISEL-NEXT: cmp x9, #7223; GISEL-NEXT: csel x23, xzr, x22, eq224; GISEL-NEXT: cmp x8, #0225; GISEL-NEXT: lsr x22, x20, x16226; GISEL-NEXT: csel x20, x20, x23, eq227; GISEL-NEXT: lsl x23, x21, x14228; GISEL-NEXT: tst x8, #0x3f229; GISEL-NEXT: csel x24, xzr, x22, eq230; GISEL-NEXT: cmp x9, #0231; GISEL-NEXT: orr x24, x23, x24232; GISEL-NEXT: csel x24, x24, xzr, eq233; GISEL-NEXT: tst x8, #0x3f234; GISEL-NEXT: csel x25, xzr, x7, eq235; GISEL-NEXT: cmp x9, #1236; GISEL-NEXT: orr x25, x19, x25237; GISEL-NEXT: csel x24, x25, x24, eq238; GISEL-NEXT: tst x8, #0x3f239; GISEL-NEXT: csel x25, xzr, x4, eq240; GISEL-NEXT: cmp x9, #2241; GISEL-NEXT: orr x25, x5, x25242; GISEL-NEXT: csel x24, x25, x24, eq243; GISEL-NEXT: tst x8, #0x3f244; GISEL-NEXT: csel x25, xzr, x17, eq245; GISEL-NEXT: cmp x9, #3246; GISEL-NEXT: orr x25, x2, x25247; GISEL-NEXT: csel x24, x25, x24, eq248; GISEL-NEXT: tst x8, #0x3f249; GISEL-NEXT: csel x25, xzr, x12, eq250; GISEL-NEXT: cmp x9, #4251; GISEL-NEXT: orr x25, x11, x25252; GISEL-NEXT: csel x24, x25, x24, eq253; GISEL-NEXT: cmp x9, #5254; GISEL-NEXT: csel x24, x10, x24, eq255; GISEL-NEXT: cmp x9, #6256; GISEL-NEXT: ldp x25, x1, [x1, #48]257; GISEL-NEXT: csel x24, xzr, x24, eq258; GISEL-NEXT: cmp x9, #7259; GISEL-NEXT: stp x13, x15, [x0]260; GISEL-NEXT: csel x24, xzr, x24, eq261; GISEL-NEXT: cmp x8, #0262; GISEL-NEXT: stp x3, x6, [x0, #16]263; GISEL-NEXT: csel x21, x21, x24, eq264; GISEL-NEXT: lsl x24, x25, x14265; GISEL-NEXT: tst x8, #0x3f266; GISEL-NEXT: csel x27, xzr, x26, eq267; GISEL-NEXT: cmp x9, #0268; GISEL-NEXT: lsr x16, x25, x16269; GISEL-NEXT: orr x27, x24, x27270; GISEL-NEXT: lsl x14, x1, x14271; GISEL-NEXT: stp x20, x21, [x0, #32]272; GISEL-NEXT: csel x27, x27, xzr, eq273; GISEL-NEXT: tst x8, #0x3f274; GISEL-NEXT: csel x28, xzr, x22, eq275; GISEL-NEXT: cmp x9, #1276; GISEL-NEXT: orr x28, x23, x28277; GISEL-NEXT: csel x27, x28, x27, eq278; GISEL-NEXT: tst x8, #0x3f279; GISEL-NEXT: csel x28, xzr, x7, eq280; GISEL-NEXT: cmp x9, #2281; GISEL-NEXT: orr x28, x19, x28282; GISEL-NEXT: csel x27, x28, x27, eq283; GISEL-NEXT: tst x8, #0x3f284; GISEL-NEXT: csel x28, xzr, x4, eq285; GISEL-NEXT: cmp x9, #3286; GISEL-NEXT: orr x28, x5, x28287; GISEL-NEXT: csel x27, x28, x27, eq288; GISEL-NEXT: tst x8, #0x3f289; GISEL-NEXT: csel x28, xzr, x17, eq290; GISEL-NEXT: cmp x9, #4291; GISEL-NEXT: orr x28, x2, x28292; GISEL-NEXT: csel x27, x28, x27, eq293; GISEL-NEXT: tst x8, #0x3f294; GISEL-NEXT: csel x28, xzr, x12, eq295; GISEL-NEXT: cmp x9, #5296; GISEL-NEXT: orr x28, x11, x28297; GISEL-NEXT: csel x27, x28, x27, eq298; GISEL-NEXT: cmp x9, #6299; GISEL-NEXT: csel x27, x10, x27, eq300; GISEL-NEXT: cmp x9, #7301; GISEL-NEXT: csel x27, xzr, x27, eq302; GISEL-NEXT: cmp x8, #0303; GISEL-NEXT: csel x25, x25, x27, eq304; GISEL-NEXT: tst x8, #0x3f305; GISEL-NEXT: csel x16, xzr, x16, eq306; GISEL-NEXT: cmp x9, #0307; GISEL-NEXT: orr x14, x14, x16308; GISEL-NEXT: csel x14, x14, xzr, eq309; GISEL-NEXT: tst x8, #0x3f310; GISEL-NEXT: csel x16, xzr, x26, eq311; GISEL-NEXT: cmp x9, #1312; GISEL-NEXT: orr x16, x24, x16313; GISEL-NEXT: csel x14, x16, x14, eq314; GISEL-NEXT: tst x8, #0x3f315; GISEL-NEXT: csel x16, xzr, x22, eq316; GISEL-NEXT: cmp x9, #2317; GISEL-NEXT: orr x16, x23, x16318; GISEL-NEXT: ldp x22, x21, [sp, #48] ; 16-byte Folded Reload319; GISEL-NEXT: csel x14, x16, x14, eq320; GISEL-NEXT: tst x8, #0x3f321; GISEL-NEXT: csel x16, xzr, x7, eq322; GISEL-NEXT: cmp x9, #3323; GISEL-NEXT: orr x16, x19, x16324; GISEL-NEXT: ldp x20, x19, [sp, #64] ; 16-byte Folded Reload325; GISEL-NEXT: csel x14, x16, x14, eq326; GISEL-NEXT: tst x8, #0x3f327; GISEL-NEXT: csel x16, xzr, x4, eq328; GISEL-NEXT: cmp x9, #4329; GISEL-NEXT: orr x16, x5, x16330; GISEL-NEXT: ldp x24, x23, [sp, #32] ; 16-byte Folded Reload331; GISEL-NEXT: csel x14, x16, x14, eq332; GISEL-NEXT: tst x8, #0x3f333; GISEL-NEXT: csel x16, xzr, x17, eq334; GISEL-NEXT: cmp x9, #5335; GISEL-NEXT: orr x16, x2, x16336; GISEL-NEXT: csel x13, x16, x14, eq337; GISEL-NEXT: tst x8, #0x3f338; GISEL-NEXT: csel x12, xzr, x12, eq339; GISEL-NEXT: cmp x9, #6340; GISEL-NEXT: orr x11, x11, x12341; GISEL-NEXT: csel x11, x11, x13, eq342; GISEL-NEXT: cmp x9, #7343; GISEL-NEXT: csel x9, x10, x11, eq344; GISEL-NEXT: cmp x8, #0345; GISEL-NEXT: csel x8, x1, x9, eq346; GISEL-NEXT: stp x25, x8, [x0, #48]347; GISEL-NEXT: ldp x26, x25, [sp, #16] ; 16-byte Folded Reload348; GISEL-NEXT: ldp x28, x27, [sp], #80 ; 16-byte Folded Reload349; GISEL-NEXT: ret350entry:351 %input_val = load i512, ptr %input, align 64352 353 %shift_ext = zext i32 %shift to i512354 %shifted = shl i512 %input_val, %shift_ext355 356 store i512 %shifted, ptr %result, align 64357 ret void358}359 360define void @test_lshr_i512(ptr %result, ptr %input, i32 %shift) {361; SDAG-LABEL: test_lshr_i512:362; SDAG: ; %bb.0: ; %entry363; SDAG-NEXT: sub sp, sp, #128364; SDAG-NEXT: .cfi_def_cfa_offset 128365; SDAG-NEXT: ldp x9, x8, [x1, #48]366; SDAG-NEXT: movi.2d v0, #0000000000000000367; SDAG-NEXT: ldp q1, q2, [x1]368; SDAG-NEXT: mvn w11, w2369; SDAG-NEXT: ldr q3, [x1, #32]370; SDAG-NEXT: stp x9, x8, [sp, #48]371; SDAG-NEXT: mov w8, w2372; SDAG-NEXT: lsr x10, x8, #3373; SDAG-NEXT: stp q2, q3, [sp, #16]374; SDAG-NEXT: and x3, x8, #0x3f375; SDAG-NEXT: stp q0, q0, [sp, #64]376; SDAG-NEXT: eor x3, x3, #0x3f377; SDAG-NEXT: and x9, x10, #0x38378; SDAG-NEXT: mov x10, sp379; SDAG-NEXT: stp q0, q0, [sp, #96]380; SDAG-NEXT: add x10, x10, x9381; SDAG-NEXT: str q1, [sp]382; SDAG-NEXT: ldp x13, x16, [x10, #48]383; SDAG-NEXT: ldp x9, x14, [x10, #16]384; SDAG-NEXT: ldp x12, x17, [x10, #32]385; SDAG-NEXT: lsl x4, x16, #1386; SDAG-NEXT: lsl x2, x13, #1387; SDAG-NEXT: lsr x13, x13, x8388; SDAG-NEXT: lsl x15, x9, #1389; SDAG-NEXT: lsr x16, x16, x8390; SDAG-NEXT: lsr x9, x9, x8391; SDAG-NEXT: lsl x1, x12, #1392; SDAG-NEXT: lsl x4, x4, x3393; SDAG-NEXT: lsr x12, x12, x8394; SDAG-NEXT: lsl x15, x15, x11395; SDAG-NEXT: lsl x1, x1, x11396; SDAG-NEXT: lsl x11, x2, x11397; SDAG-NEXT: lsl x2, x17, #1398; SDAG-NEXT: orr x13, x4, x13399; SDAG-NEXT: ldp x10, x4, [x10]400; SDAG-NEXT: lsr x17, x17, x8401; SDAG-NEXT: lsl x2, x2, x3402; SDAG-NEXT: stp x13, x16, [x0, #48]403; SDAG-NEXT: lsl x16, x14, #1404; SDAG-NEXT: lsr x14, x14, x8405; SDAG-NEXT: lsl x13, x4, #1406; SDAG-NEXT: orr x11, x17, x11407; SDAG-NEXT: orr x12, x2, x12408; SDAG-NEXT: lsl x16, x16, x3409; SDAG-NEXT: lsr x10, x10, x8410; SDAG-NEXT: stp x12, x11, [x0, #32]411; SDAG-NEXT: lsl x12, x13, x3412; SDAG-NEXT: lsr x8, x4, x8413; SDAG-NEXT: orr x11, x14, x1414; SDAG-NEXT: orr x9, x16, x9415; SDAG-NEXT: stp x9, x11, [x0, #16]416; SDAG-NEXT: orr x9, x12, x10417; SDAG-NEXT: orr x8, x8, x15418; SDAG-NEXT: stp x9, x8, [x0]419; SDAG-NEXT: add sp, sp, #128420; SDAG-NEXT: ret421;422; GISEL-LABEL: test_lshr_i512:423; GISEL: ; %bb.0: ; %entry424; GISEL-NEXT: stp x26, x25, [sp, #-64]! ; 16-byte Folded Spill425; GISEL-NEXT: stp x24, x23, [sp, #16] ; 16-byte Folded Spill426; GISEL-NEXT: stp x22, x21, [sp, #32] ; 16-byte Folded Spill427; GISEL-NEXT: stp x20, x19, [sp, #48] ; 16-byte Folded Spill428; GISEL-NEXT: .cfi_def_cfa_offset 64429; GISEL-NEXT: .cfi_offset w19, -8430; GISEL-NEXT: .cfi_offset w20, -16431; GISEL-NEXT: .cfi_offset w21, -24432; GISEL-NEXT: .cfi_offset w22, -32433; GISEL-NEXT: .cfi_offset w23, -40434; GISEL-NEXT: .cfi_offset w24, -48435; GISEL-NEXT: .cfi_offset w25, -56436; GISEL-NEXT: .cfi_offset w26, -64437; GISEL-NEXT: mov w8, w2438; GISEL-NEXT: ldp x13, x2, [x1]439; GISEL-NEXT: mov w9, #64 ; =0x40440; GISEL-NEXT: and x14, x8, #0x3f441; GISEL-NEXT: tst x8, #0x3f442; GISEL-NEXT: sub x17, x9, x14443; GISEL-NEXT: ldp x5, x16, [x1, #16]444; GISEL-NEXT: lsl x10, x2, x17445; GISEL-NEXT: lsr x9, x8, #6446; GISEL-NEXT: lsr x11, x13, x14447; GISEL-NEXT: lsr x24, x2, x14448; GISEL-NEXT: csel x10, xzr, x10, eq449; GISEL-NEXT: lsl x23, x5, x17450; GISEL-NEXT: cmp x9, #0451; GISEL-NEXT: orr x10, x11, x10452; GISEL-NEXT: lsl x22, x16, x17453; GISEL-NEXT: lsr x21, x5, x14454; GISEL-NEXT: csel x10, x10, xzr, eq455; GISEL-NEXT: tst x8, #0x3f456; GISEL-NEXT: lsr x20, x16, x14457; GISEL-NEXT: csel x11, xzr, x23, eq458; GISEL-NEXT: cmp x9, #1459; GISEL-NEXT: orr x11, x24, x11460; GISEL-NEXT: csel x10, x11, x10, eq461; GISEL-NEXT: ldp x15, x11, [x1, #32]462; GISEL-NEXT: tst x8, #0x3f463; GISEL-NEXT: csel x12, xzr, x22, eq464; GISEL-NEXT: cmp x9, #2465; GISEL-NEXT: lsl x19, x15, x17466; GISEL-NEXT: orr x12, x21, x12467; GISEL-NEXT: lsl x6, x11, x17468; GISEL-NEXT: csel x10, x12, x10, eq469; GISEL-NEXT: tst x8, #0x3f470; GISEL-NEXT: lsr x7, x15, x14471; GISEL-NEXT: csel x12, xzr, x19, eq472; GISEL-NEXT: cmp x9, #3473; GISEL-NEXT: orr x12, x20, x12474; GISEL-NEXT: csel x4, x12, x10, eq475; GISEL-NEXT: ldp x12, x10, [x1, #48]476; GISEL-NEXT: tst x8, #0x3f477; GISEL-NEXT: csel x1, xzr, x6, eq478; GISEL-NEXT: cmp x9, #4479; GISEL-NEXT: orr x1, x7, x1480; GISEL-NEXT: lsl x3, x12, x17481; GISEL-NEXT: lsl x17, x10, x17482; GISEL-NEXT: csel x1, x1, x4, eq483; GISEL-NEXT: lsr x4, x11, x14484; GISEL-NEXT: tst x8, #0x3f485; GISEL-NEXT: csel x25, xzr, x3, eq486; GISEL-NEXT: cmp x9, #5487; GISEL-NEXT: orr x25, x4, x25488; GISEL-NEXT: csel x25, x25, x1, eq489; GISEL-NEXT: lsr x1, x12, x14490; GISEL-NEXT: tst x8, #0x3f491; GISEL-NEXT: csel x26, xzr, x17, eq492; GISEL-NEXT: cmp x9, #6493; GISEL-NEXT: lsr x14, x10, x14494; GISEL-NEXT: orr x26, x1, x26495; GISEL-NEXT: csel x25, x26, x25, eq496; GISEL-NEXT: cmp x9, #7497; GISEL-NEXT: csel x25, x14, x25, eq498; GISEL-NEXT: cmp x8, #0499; GISEL-NEXT: csel x13, x13, x25, eq500; GISEL-NEXT: tst x8, #0x3f501; GISEL-NEXT: csel x23, xzr, x23, eq502; GISEL-NEXT: cmp x9, #0503; GISEL-NEXT: orr x23, x24, x23504; GISEL-NEXT: csel x23, x23, xzr, eq505; GISEL-NEXT: tst x8, #0x3f506; GISEL-NEXT: csel x24, xzr, x22, eq507; GISEL-NEXT: cmp x9, #1508; GISEL-NEXT: orr x24, x21, x24509; GISEL-NEXT: csel x23, x24, x23, eq510; GISEL-NEXT: tst x8, #0x3f511; GISEL-NEXT: csel x24, xzr, x19, eq512; GISEL-NEXT: cmp x9, #2513; GISEL-NEXT: orr x24, x20, x24514; GISEL-NEXT: csel x23, x24, x23, eq515; GISEL-NEXT: tst x8, #0x3f516; GISEL-NEXT: csel x24, xzr, x6, eq517; GISEL-NEXT: cmp x9, #3518; GISEL-NEXT: orr x24, x7, x24519; GISEL-NEXT: csel x23, x24, x23, eq520; GISEL-NEXT: tst x8, #0x3f521; GISEL-NEXT: csel x24, xzr, x3, eq522; GISEL-NEXT: cmp x9, #4523; GISEL-NEXT: orr x24, x4, x24524; GISEL-NEXT: csel x23, x24, x23, eq525; GISEL-NEXT: tst x8, #0x3f526; GISEL-NEXT: csel x24, xzr, x17, eq527; GISEL-NEXT: cmp x9, #5528; GISEL-NEXT: orr x24, x1, x24529; GISEL-NEXT: csel x23, x24, x23, eq530; GISEL-NEXT: cmp x9, #6531; GISEL-NEXT: csel x23, x14, x23, eq532; GISEL-NEXT: cmp x9, #7533; GISEL-NEXT: csel x23, xzr, x23, eq534; GISEL-NEXT: cmp x8, #0535; GISEL-NEXT: csel x2, x2, x23, eq536; GISEL-NEXT: tst x8, #0x3f537; GISEL-NEXT: csel x22, xzr, x22, eq538; GISEL-NEXT: cmp x9, #0539; GISEL-NEXT: stp x13, x2, [x0]540; GISEL-NEXT: orr x21, x21, x22541; GISEL-NEXT: ldp x24, x23, [sp, #16] ; 16-byte Folded Reload542; GISEL-NEXT: csel x21, x21, xzr, eq543; GISEL-NEXT: tst x8, #0x3f544; GISEL-NEXT: csel x22, xzr, x19, eq545; GISEL-NEXT: cmp x9, #1546; GISEL-NEXT: orr x22, x20, x22547; GISEL-NEXT: csel x21, x22, x21, eq548; GISEL-NEXT: tst x8, #0x3f549; GISEL-NEXT: csel x22, xzr, x6, eq550; GISEL-NEXT: cmp x9, #2551; GISEL-NEXT: orr x22, x7, x22552; GISEL-NEXT: csel x21, x22, x21, eq553; GISEL-NEXT: tst x8, #0x3f554; GISEL-NEXT: csel x22, xzr, x3, eq555; GISEL-NEXT: cmp x9, #3556; GISEL-NEXT: orr x22, x4, x22557; GISEL-NEXT: csel x21, x22, x21, eq558; GISEL-NEXT: tst x8, #0x3f559; GISEL-NEXT: csel x22, xzr, x17, eq560; GISEL-NEXT: cmp x9, #4561; GISEL-NEXT: orr x22, x1, x22562; GISEL-NEXT: csel x21, x22, x21, eq563; GISEL-NEXT: cmp x9, #5564; GISEL-NEXT: csel x21, x14, x21, eq565; GISEL-NEXT: cmp x9, #6566; GISEL-NEXT: csel x21, xzr, x21, eq567; GISEL-NEXT: cmp x9, #7568; GISEL-NEXT: csel x21, xzr, x21, eq569; GISEL-NEXT: cmp x8, #0570; GISEL-NEXT: csel x5, x5, x21, eq571; GISEL-NEXT: tst x8, #0x3f572; GISEL-NEXT: csel x19, xzr, x19, eq573; GISEL-NEXT: cmp x9, #0574; GISEL-NEXT: orr x19, x20, x19575; GISEL-NEXT: ldp x22, x21, [sp, #32] ; 16-byte Folded Reload576; GISEL-NEXT: csel x19, x19, xzr, eq577; GISEL-NEXT: tst x8, #0x3f578; GISEL-NEXT: csel x20, xzr, x6, eq579; GISEL-NEXT: cmp x9, #1580; GISEL-NEXT: orr x20, x7, x20581; GISEL-NEXT: csel x19, x20, x19, eq582; GISEL-NEXT: tst x8, #0x3f583; GISEL-NEXT: csel x20, xzr, x3, eq584; GISEL-NEXT: cmp x9, #2585; GISEL-NEXT: orr x20, x4, x20586; GISEL-NEXT: csel x19, x20, x19, eq587; GISEL-NEXT: tst x8, #0x3f588; GISEL-NEXT: csel x20, xzr, x17, eq589; GISEL-NEXT: cmp x9, #3590; GISEL-NEXT: orr x20, x1, x20591; GISEL-NEXT: csel x19, x20, x19, eq592; GISEL-NEXT: cmp x9, #4593; GISEL-NEXT: csel x19, x14, x19, eq594; GISEL-NEXT: cmp x9, #5595; GISEL-NEXT: csel x19, xzr, x19, eq596; GISEL-NEXT: cmp x9, #6597; GISEL-NEXT: csel x19, xzr, x19, eq598; GISEL-NEXT: cmp x9, #7599; GISEL-NEXT: csel x19, xzr, x19, eq600; GISEL-NEXT: cmp x8, #0601; GISEL-NEXT: csel x16, x16, x19, eq602; GISEL-NEXT: tst x8, #0x3f603; GISEL-NEXT: csel x6, xzr, x6, eq604; GISEL-NEXT: cmp x9, #0605; GISEL-NEXT: stp x5, x16, [x0, #16]606; GISEL-NEXT: orr x6, x7, x6607; GISEL-NEXT: ldp x20, x19, [sp, #48] ; 16-byte Folded Reload608; GISEL-NEXT: csel x6, x6, xzr, eq609; GISEL-NEXT: tst x8, #0x3f610; GISEL-NEXT: csel x7, xzr, x3, eq611; GISEL-NEXT: cmp x9, #1612; GISEL-NEXT: orr x7, x4, x7613; GISEL-NEXT: csel x6, x7, x6, eq614; GISEL-NEXT: tst x8, #0x3f615; GISEL-NEXT: csel x7, xzr, x17, eq616; GISEL-NEXT: cmp x9, #2617; GISEL-NEXT: orr x7, x1, x7618; GISEL-NEXT: csel x6, x7, x6, eq619; GISEL-NEXT: cmp x9, #3620; GISEL-NEXT: csel x6, x14, x6, eq621; GISEL-NEXT: cmp x9, #4622; GISEL-NEXT: csel x6, xzr, x6, eq623; GISEL-NEXT: cmp x9, #5624; GISEL-NEXT: csel x6, xzr, x6, eq625; GISEL-NEXT: cmp x9, #6626; GISEL-NEXT: csel x6, xzr, x6, eq627; GISEL-NEXT: cmp x9, #7628; GISEL-NEXT: csel x6, xzr, x6, eq629; GISEL-NEXT: cmp x8, #0630; GISEL-NEXT: csel x15, x15, x6, eq631; GISEL-NEXT: tst x8, #0x3f632; GISEL-NEXT: csel x3, xzr, x3, eq633; GISEL-NEXT: cmp x9, #0634; GISEL-NEXT: orr x3, x4, x3635; GISEL-NEXT: csel x3, x3, xzr, eq636; GISEL-NEXT: tst x8, #0x3f637; GISEL-NEXT: csel x4, xzr, x17, eq638; GISEL-NEXT: cmp x9, #1639; GISEL-NEXT: orr x4, x1, x4640; GISEL-NEXT: csel x3, x4, x3, eq641; GISEL-NEXT: cmp x9, #2642; GISEL-NEXT: csel x3, x14, x3, eq643; GISEL-NEXT: cmp x9, #3644; GISEL-NEXT: csel x3, xzr, x3, eq645; GISEL-NEXT: cmp x9, #4646; GISEL-NEXT: csel x3, xzr, x3, eq647; GISEL-NEXT: cmp x9, #5648; GISEL-NEXT: csel x3, xzr, x3, eq649; GISEL-NEXT: cmp x9, #6650; GISEL-NEXT: csel x3, xzr, x3, eq651; GISEL-NEXT: cmp x9, #7652; GISEL-NEXT: csel x3, xzr, x3, eq653; GISEL-NEXT: cmp x8, #0654; GISEL-NEXT: csel x11, x11, x3, eq655; GISEL-NEXT: tst x8, #0x3f656; GISEL-NEXT: csel x17, xzr, x17, eq657; GISEL-NEXT: cmp x9, #0658; GISEL-NEXT: stp x15, x11, [x0, #32]659; GISEL-NEXT: orr x17, x1, x17660; GISEL-NEXT: csel x17, x17, xzr, eq661; GISEL-NEXT: cmp x9, #1662; GISEL-NEXT: csel x17, x14, x17, eq663; GISEL-NEXT: cmp x9, #2664; GISEL-NEXT: csel x17, xzr, x17, eq665; GISEL-NEXT: cmp x9, #3666; GISEL-NEXT: csel x17, xzr, x17, eq667; GISEL-NEXT: cmp x9, #4668; GISEL-NEXT: csel x17, xzr, x17, eq669; GISEL-NEXT: cmp x9, #5670; GISEL-NEXT: csel x17, xzr, x17, eq671; GISEL-NEXT: cmp x9, #6672; GISEL-NEXT: csel x17, xzr, x17, eq673; GISEL-NEXT: cmp x9, #7674; GISEL-NEXT: csel x17, xzr, x17, eq675; GISEL-NEXT: cmp x8, #0676; GISEL-NEXT: csel x12, x12, x17, eq677; GISEL-NEXT: cmp x9, #0678; GISEL-NEXT: csel x14, x14, xzr, eq679; GISEL-NEXT: cmp x9, #1680; GISEL-NEXT: csel x14, xzr, x14, eq681; GISEL-NEXT: cmp x9, #2682; GISEL-NEXT: csel x14, xzr, x14, eq683; GISEL-NEXT: cmp x9, #3684; GISEL-NEXT: csel x13, xzr, x14, eq685; GISEL-NEXT: cmp x9, #4686; GISEL-NEXT: csel x13, xzr, x13, eq687; GISEL-NEXT: cmp x9, #5688; GISEL-NEXT: csel x13, xzr, x13, eq689; GISEL-NEXT: cmp x9, #6690; GISEL-NEXT: csel x13, xzr, x13, eq691; GISEL-NEXT: cmp x9, #7692; GISEL-NEXT: csel x9, xzr, x13, eq693; GISEL-NEXT: cmp x8, #0694; GISEL-NEXT: csel x8, x10, x9, eq695; GISEL-NEXT: stp x12, x8, [x0, #48]696; GISEL-NEXT: ldp x26, x25, [sp], #64 ; 16-byte Folded Reload697; GISEL-NEXT: ret698entry:699 %input_val = load i512, ptr %input, align 64700 %shift_ext = zext i32 %shift to i512701 %shifted = lshr i512 %input_val, %shift_ext702 store i512 %shifted, ptr %result, align 64703 ret void704}705 706define void @test_ashr_i512(ptr %result, ptr %input, i32 %shift) {707; SDAG-LABEL: test_ashr_i512:708; SDAG: ; %bb.0: ; %entry709; SDAG-NEXT: sub sp, sp, #128710; SDAG-NEXT: .cfi_def_cfa_offset 128711; SDAG-NEXT: ldp x9, x8, [x1, #48]712; SDAG-NEXT: mov x11, sp713; SDAG-NEXT: ldp q0, q1, [x1]714; SDAG-NEXT: ldr q2, [x1, #32]715; SDAG-NEXT: stp x9, x8, [sp, #48]716; SDAG-NEXT: asr x9, x8, #63717; SDAG-NEXT: mov w8, w2718; SDAG-NEXT: lsr x10, x8, #3719; SDAG-NEXT: stp q1, q2, [sp, #16]720; SDAG-NEXT: and x3, x8, #0x3f721; SDAG-NEXT: str q0, [sp]722; SDAG-NEXT: eor x3, x3, #0x3f723; SDAG-NEXT: and x10, x10, #0x38724; SDAG-NEXT: stp x9, x9, [sp, #112]725; SDAG-NEXT: stp x9, x9, [sp, #96]726; SDAG-NEXT: add x10, x11, x10727; SDAG-NEXT: mvn w11, w2728; SDAG-NEXT: stp x9, x9, [sp, #80]729; SDAG-NEXT: stp x9, x9, [sp, #64]730; SDAG-NEXT: ldp x13, x16, [x10, #48]731; SDAG-NEXT: ldp x9, x14, [x10, #16]732; SDAG-NEXT: ldp x12, x17, [x10, #32]733; SDAG-NEXT: lsl x4, x16, #1734; SDAG-NEXT: lsl x2, x13, #1735; SDAG-NEXT: lsr x13, x13, x8736; SDAG-NEXT: lsl x15, x9, #1737; SDAG-NEXT: asr x16, x16, x8738; SDAG-NEXT: lsr x9, x9, x8739; SDAG-NEXT: lsl x1, x12, #1740; SDAG-NEXT: lsl x4, x4, x3741; SDAG-NEXT: lsr x12, x12, x8742; SDAG-NEXT: lsl x15, x15, x11743; SDAG-NEXT: lsl x1, x1, x11744; SDAG-NEXT: lsl x11, x2, x11745; SDAG-NEXT: lsl x2, x17, #1746; SDAG-NEXT: orr x13, x4, x13747; SDAG-NEXT: ldp x10, x4, [x10]748; SDAG-NEXT: lsr x17, x17, x8749; SDAG-NEXT: lsl x2, x2, x3750; SDAG-NEXT: stp x13, x16, [x0, #48]751; SDAG-NEXT: lsl x16, x14, #1752; SDAG-NEXT: lsr x14, x14, x8753; SDAG-NEXT: lsl x13, x4, #1754; SDAG-NEXT: orr x11, x17, x11755; SDAG-NEXT: orr x12, x2, x12756; SDAG-NEXT: lsl x16, x16, x3757; SDAG-NEXT: lsr x10, x10, x8758; SDAG-NEXT: stp x12, x11, [x0, #32]759; SDAG-NEXT: lsl x12, x13, x3760; SDAG-NEXT: lsr x8, x4, x8761; SDAG-NEXT: orr x11, x14, x1762; SDAG-NEXT: orr x9, x16, x9763; SDAG-NEXT: stp x9, x11, [x0, #16]764; SDAG-NEXT: orr x9, x12, x10765; SDAG-NEXT: orr x8, x8, x15766; SDAG-NEXT: stp x9, x8, [x0]767; SDAG-NEXT: add sp, sp, #128768; SDAG-NEXT: ret769;770; GISEL-LABEL: test_ashr_i512:771; GISEL: ; %bb.0: ; %entry772; GISEL-NEXT: stp x28, x27, [sp, #-80]! ; 16-byte Folded Spill773; GISEL-NEXT: stp x26, x25, [sp, #16] ; 16-byte Folded Spill774; GISEL-NEXT: stp x24, x23, [sp, #32] ; 16-byte Folded Spill775; GISEL-NEXT: stp x22, x21, [sp, #48] ; 16-byte Folded Spill776; GISEL-NEXT: stp x20, x19, [sp, #64] ; 16-byte Folded Spill777; GISEL-NEXT: .cfi_def_cfa_offset 80778; GISEL-NEXT: .cfi_offset w19, -8779; GISEL-NEXT: .cfi_offset w20, -16780; GISEL-NEXT: .cfi_offset w21, -24781; GISEL-NEXT: .cfi_offset w22, -32782; GISEL-NEXT: .cfi_offset w23, -40783; GISEL-NEXT: .cfi_offset w24, -48784; GISEL-NEXT: .cfi_offset w25, -56785; GISEL-NEXT: .cfi_offset w26, -64786; GISEL-NEXT: .cfi_offset w27, -72787; GISEL-NEXT: .cfi_offset w28, -80788; GISEL-NEXT: mov w8, w2789; GISEL-NEXT: ldp x14, x4, [x1]790; GISEL-NEXT: mov w9, #64 ; =0x40791; GISEL-NEXT: and x16, x8, #0x3f792; GISEL-NEXT: lsr x10, x8, #6793; GISEL-NEXT: sub x15, x9, x16794; GISEL-NEXT: ldr x9, [x1, #56]795; GISEL-NEXT: tst x8, #0x3f796; GISEL-NEXT: lsl x12, x4, x15797; GISEL-NEXT: ldp x7, x3, [x1, #16]798; GISEL-NEXT: lsr x13, x14, x16799; GISEL-NEXT: asr x11, x9, #63800; GISEL-NEXT: lsr x26, x4, x16801; GISEL-NEXT: csel x12, xzr, x12, eq802; GISEL-NEXT: cmp x10, #0803; GISEL-NEXT: lsl x25, x7, x15804; GISEL-NEXT: orr x12, x13, x12805; GISEL-NEXT: lsl x23, x3, x15806; GISEL-NEXT: csel x12, x12, x11, eq807; GISEL-NEXT: tst x8, #0x3f808; GISEL-NEXT: lsr x24, x7, x16809; GISEL-NEXT: csel x13, xzr, x25, eq810; GISEL-NEXT: cmp x10, #1811; GISEL-NEXT: lsr x22, x3, x16812; GISEL-NEXT: orr x13, x26, x13813; GISEL-NEXT: csel x12, x13, x12, eq814; GISEL-NEXT: ldp x17, x13, [x1, #32]815; GISEL-NEXT: tst x8, #0x3f816; GISEL-NEXT: csel x2, xzr, x23, eq817; GISEL-NEXT: cmp x10, #2818; GISEL-NEXT: orr x2, x24, x2819; GISEL-NEXT: lsl x21, x17, x15820; GISEL-NEXT: lsl x19, x13, x15821; GISEL-NEXT: csel x2, x2, x12, eq822; GISEL-NEXT: tst x8, #0x3f823; GISEL-NEXT: ldr x12, [x1, #48]824; GISEL-NEXT: csel x1, xzr, x21, eq825; GISEL-NEXT: cmp x10, #3826; GISEL-NEXT: lsr x20, x17, x16827; GISEL-NEXT: orr x1, x22, x1828; GISEL-NEXT: lsl x5, x12, x15829; GISEL-NEXT: lsr x6, x13, x16830; GISEL-NEXT: csel x1, x1, x2, eq831; GISEL-NEXT: tst x8, #0x3f832; GISEL-NEXT: csel x2, xzr, x19, eq833; GISEL-NEXT: cmp x10, #4834; GISEL-NEXT: orr x2, x20, x2835; GISEL-NEXT: csel x2, x2, x1, eq836; GISEL-NEXT: tst x8, #0x3f837; GISEL-NEXT: csel x1, xzr, x5, eq838; GISEL-NEXT: cmp x10, #5839; GISEL-NEXT: orr x27, x6, x1840; GISEL-NEXT: lsl x1, x9, x15841; GISEL-NEXT: lsl x15, x11, x15842; GISEL-NEXT: csel x27, x27, x2, eq843; GISEL-NEXT: lsr x2, x12, x16844; GISEL-NEXT: tst x8, #0x3f845; GISEL-NEXT: csel x28, xzr, x1, eq846; GISEL-NEXT: cmp x10, #6847; GISEL-NEXT: lsr x16, x9, x16848; GISEL-NEXT: orr x28, x2, x28849; GISEL-NEXT: csel x27, x28, x27, eq850; GISEL-NEXT: tst x8, #0x3f851; GISEL-NEXT: csel x28, xzr, x15, eq852; GISEL-NEXT: cmp x10, #7853; GISEL-NEXT: orr x28, x16, x28854; GISEL-NEXT: csel x27, x28, x27, eq855; GISEL-NEXT: cmp x8, #0856; GISEL-NEXT: csel x14, x14, x27, eq857; GISEL-NEXT: tst x8, #0x3f858; GISEL-NEXT: csel x25, xzr, x25, eq859; GISEL-NEXT: cmp x10, #0860; GISEL-NEXT: orr x25, x26, x25861; GISEL-NEXT: csel x25, x25, x11, eq862; GISEL-NEXT: tst x8, #0x3f863; GISEL-NEXT: csel x26, xzr, x23, eq864; GISEL-NEXT: cmp x10, #1865; GISEL-NEXT: orr x26, x24, x26866; GISEL-NEXT: csel x25, x26, x25, eq867; GISEL-NEXT: tst x8, #0x3f868; GISEL-NEXT: csel x26, xzr, x21, eq869; GISEL-NEXT: cmp x10, #2870; GISEL-NEXT: orr x26, x22, x26871; GISEL-NEXT: csel x25, x26, x25, eq872; GISEL-NEXT: tst x8, #0x3f873; GISEL-NEXT: csel x26, xzr, x19, eq874; GISEL-NEXT: cmp x10, #3875; GISEL-NEXT: orr x26, x20, x26876; GISEL-NEXT: csel x25, x26, x25, eq877; GISEL-NEXT: tst x8, #0x3f878; GISEL-NEXT: csel x26, xzr, x5, eq879; GISEL-NEXT: cmp x10, #4880; GISEL-NEXT: orr x26, x6, x26881; GISEL-NEXT: csel x25, x26, x25, eq882; GISEL-NEXT: tst x8, #0x3f883; GISEL-NEXT: csel x26, xzr, x1, eq884; GISEL-NEXT: cmp x10, #5885; GISEL-NEXT: orr x26, x2, x26886; GISEL-NEXT: csel x25, x26, x25, eq887; GISEL-NEXT: tst x8, #0x3f888; GISEL-NEXT: csel x26, xzr, x15, eq889; GISEL-NEXT: cmp x10, #6890; GISEL-NEXT: orr x26, x16, x26891; GISEL-NEXT: csel x25, x26, x25, eq892; GISEL-NEXT: cmp x10, #7893; GISEL-NEXT: csel x25, x11, x25, eq894; GISEL-NEXT: cmp x8, #0895; GISEL-NEXT: csel x4, x4, x25, eq896; GISEL-NEXT: tst x8, #0x3f897; GISEL-NEXT: csel x23, xzr, x23, eq898; GISEL-NEXT: cmp x10, #0899; GISEL-NEXT: stp x14, x4, [x0]900; GISEL-NEXT: orr x23, x24, x23901; GISEL-NEXT: ldp x26, x25, [sp, #16] ; 16-byte Folded Reload902; GISEL-NEXT: csel x23, x23, x11, eq903; GISEL-NEXT: tst x8, #0x3f904; GISEL-NEXT: csel x24, xzr, x21, eq905; GISEL-NEXT: cmp x10, #1906; GISEL-NEXT: orr x24, x22, x24907; GISEL-NEXT: csel x23, x24, x23, eq908; GISEL-NEXT: tst x8, #0x3f909; GISEL-NEXT: csel x24, xzr, x19, eq910; GISEL-NEXT: cmp x10, #2911; GISEL-NEXT: orr x24, x20, x24912; GISEL-NEXT: csel x23, x24, x23, eq913; GISEL-NEXT: tst x8, #0x3f914; GISEL-NEXT: csel x24, xzr, x5, eq915; GISEL-NEXT: cmp x10, #3916; GISEL-NEXT: orr x24, x6, x24917; GISEL-NEXT: csel x23, x24, x23, eq918; GISEL-NEXT: tst x8, #0x3f919; GISEL-NEXT: csel x24, xzr, x1, eq920; GISEL-NEXT: cmp x10, #4921; GISEL-NEXT: orr x24, x2, x24922; GISEL-NEXT: csel x23, x24, x23, eq923; GISEL-NEXT: tst x8, #0x3f924; GISEL-NEXT: csel x24, xzr, x15, eq925; GISEL-NEXT: cmp x10, #5926; GISEL-NEXT: orr x24, x16, x24927; GISEL-NEXT: csel x23, x24, x23, eq928; GISEL-NEXT: cmp x10, #6929; GISEL-NEXT: csel x23, x11, x23, eq930; GISEL-NEXT: cmp x10, #7931; GISEL-NEXT: csel x23, x11, x23, eq932; GISEL-NEXT: cmp x8, #0933; GISEL-NEXT: csel x7, x7, x23, eq934; GISEL-NEXT: tst x8, #0x3f935; GISEL-NEXT: csel x21, xzr, x21, eq936; GISEL-NEXT: cmp x10, #0937; GISEL-NEXT: orr x21, x22, x21938; GISEL-NEXT: ldp x24, x23, [sp, #32] ; 16-byte Folded Reload939; GISEL-NEXT: csel x21, x21, x11, eq940; GISEL-NEXT: tst x8, #0x3f941; GISEL-NEXT: csel x22, xzr, x19, eq942; GISEL-NEXT: cmp x10, #1943; GISEL-NEXT: orr x22, x20, x22944; GISEL-NEXT: csel x21, x22, x21, eq945; GISEL-NEXT: tst x8, #0x3f946; GISEL-NEXT: csel x22, xzr, x5, eq947; GISEL-NEXT: cmp x10, #2948; GISEL-NEXT: orr x22, x6, x22949; GISEL-NEXT: csel x21, x22, x21, eq950; GISEL-NEXT: tst x8, #0x3f951; GISEL-NEXT: csel x22, xzr, x1, eq952; GISEL-NEXT: cmp x10, #3953; GISEL-NEXT: orr x22, x2, x22954; GISEL-NEXT: csel x21, x22, x21, eq955; GISEL-NEXT: tst x8, #0x3f956; GISEL-NEXT: csel x22, xzr, x15, eq957; GISEL-NEXT: cmp x10, #4958; GISEL-NEXT: orr x22, x16, x22959; GISEL-NEXT: csel x21, x22, x21, eq960; GISEL-NEXT: cmp x10, #5961; GISEL-NEXT: csel x21, x11, x21, eq962; GISEL-NEXT: cmp x10, #6963; GISEL-NEXT: csel x21, x11, x21, eq964; GISEL-NEXT: cmp x10, #7965; GISEL-NEXT: csel x21, x11, x21, eq966; GISEL-NEXT: cmp x8, #0967; GISEL-NEXT: csel x3, x3, x21, eq968; GISEL-NEXT: tst x8, #0x3f969; GISEL-NEXT: csel x19, xzr, x19, eq970; GISEL-NEXT: cmp x10, #0971; GISEL-NEXT: stp x7, x3, [x0, #16]972; GISEL-NEXT: orr x19, x20, x19973; GISEL-NEXT: ldp x22, x21, [sp, #48] ; 16-byte Folded Reload974; GISEL-NEXT: csel x19, x19, x11, eq975; GISEL-NEXT: tst x8, #0x3f976; GISEL-NEXT: csel x20, xzr, x5, eq977; GISEL-NEXT: cmp x10, #1978; GISEL-NEXT: orr x20, x6, x20979; GISEL-NEXT: csel x19, x20, x19, eq980; GISEL-NEXT: tst x8, #0x3f981; GISEL-NEXT: csel x20, xzr, x1, eq982; GISEL-NEXT: cmp x10, #2983; GISEL-NEXT: orr x20, x2, x20984; GISEL-NEXT: csel x19, x20, x19, eq985; GISEL-NEXT: tst x8, #0x3f986; GISEL-NEXT: csel x20, xzr, x15, eq987; GISEL-NEXT: cmp x10, #3988; GISEL-NEXT: orr x20, x16, x20989; GISEL-NEXT: csel x19, x20, x19, eq990; GISEL-NEXT: cmp x10, #4991; GISEL-NEXT: csel x19, x11, x19, eq992; GISEL-NEXT: cmp x10, #5993; GISEL-NEXT: csel x19, x11, x19, eq994; GISEL-NEXT: cmp x10, #6995; GISEL-NEXT: csel x19, x11, x19, eq996; GISEL-NEXT: cmp x10, #7997; GISEL-NEXT: csel x19, x11, x19, eq998; GISEL-NEXT: cmp x8, #0999; GISEL-NEXT: csel x17, x17, x19, eq1000; GISEL-NEXT: tst x8, #0x3f1001; GISEL-NEXT: csel x5, xzr, x5, eq1002; GISEL-NEXT: cmp x10, #01003; GISEL-NEXT: orr x5, x6, x51004; GISEL-NEXT: ldp x20, x19, [sp, #64] ; 16-byte Folded Reload1005; GISEL-NEXT: csel x5, x5, x11, eq1006; GISEL-NEXT: tst x8, #0x3f1007; GISEL-NEXT: csel x6, xzr, x1, eq1008; GISEL-NEXT: cmp x10, #11009; GISEL-NEXT: orr x6, x2, x61010; GISEL-NEXT: csel x5, x6, x5, eq1011; GISEL-NEXT: tst x8, #0x3f1012; GISEL-NEXT: csel x6, xzr, x15, eq1013; GISEL-NEXT: cmp x10, #21014; GISEL-NEXT: orr x6, x16, x61015; GISEL-NEXT: csel x5, x6, x5, eq1016; GISEL-NEXT: cmp x10, #31017; GISEL-NEXT: csel x5, x11, x5, eq1018; GISEL-NEXT: cmp x10, #41019; GISEL-NEXT: csel x5, x11, x5, eq1020; GISEL-NEXT: cmp x10, #51021; GISEL-NEXT: csel x5, x11, x5, eq1022; GISEL-NEXT: cmp x10, #61023; GISEL-NEXT: csel x5, x11, x5, eq1024; GISEL-NEXT: cmp x10, #71025; GISEL-NEXT: csel x5, x11, x5, eq1026; GISEL-NEXT: cmp x8, #01027; GISEL-NEXT: csel x13, x13, x5, eq1028; GISEL-NEXT: tst x8, #0x3f1029; GISEL-NEXT: csel x1, xzr, x1, eq1030; GISEL-NEXT: cmp x10, #01031; GISEL-NEXT: stp x17, x13, [x0, #32]1032; GISEL-NEXT: orr x1, x2, x11033; GISEL-NEXT: csel x1, x1, x11, eq1034; GISEL-NEXT: tst x8, #0x3f1035; GISEL-NEXT: csel x2, xzr, x15, eq1036; GISEL-NEXT: cmp x10, #11037; GISEL-NEXT: orr x2, x16, x21038; GISEL-NEXT: csel x1, x2, x1, eq1039; GISEL-NEXT: cmp x10, #21040; GISEL-NEXT: csel x1, x11, x1, eq1041; GISEL-NEXT: cmp x10, #31042; GISEL-NEXT: csel x1, x11, x1, eq1043; GISEL-NEXT: cmp x10, #41044; GISEL-NEXT: csel x1, x11, x1, eq1045; GISEL-NEXT: cmp x10, #51046; GISEL-NEXT: csel x1, x11, x1, eq1047; GISEL-NEXT: cmp x10, #61048; GISEL-NEXT: csel x1, x11, x1, eq1049; GISEL-NEXT: cmp x10, #71050; GISEL-NEXT: csel x1, x11, x1, eq1051; GISEL-NEXT: cmp x8, #01052; GISEL-NEXT: csel x12, x12, x1, eq1053; GISEL-NEXT: tst x8, #0x3f1054; GISEL-NEXT: csel x15, xzr, x15, eq1055; GISEL-NEXT: cmp x10, #01056; GISEL-NEXT: orr x15, x16, x151057; GISEL-NEXT: csel x15, x15, x11, eq1058; GISEL-NEXT: cmp x10, #11059; GISEL-NEXT: csel x15, x11, x15, eq1060; GISEL-NEXT: cmp x10, #21061; GISEL-NEXT: csel x15, x11, x15, eq1062; GISEL-NEXT: cmp x10, #31063; GISEL-NEXT: csel x14, x11, x15, eq1064; GISEL-NEXT: cmp x10, #41065; GISEL-NEXT: csel x14, x11, x14, eq1066; GISEL-NEXT: cmp x10, #51067; GISEL-NEXT: csel x14, x11, x14, eq1068; GISEL-NEXT: cmp x10, #61069; GISEL-NEXT: csel x14, x11, x14, eq1070; GISEL-NEXT: cmp x10, #71071; GISEL-NEXT: csel x10, x11, x14, eq1072; GISEL-NEXT: cmp x8, #01073; GISEL-NEXT: csel x8, x9, x10, eq1074; GISEL-NEXT: stp x12, x8, [x0, #48]1075; GISEL-NEXT: ldp x28, x27, [sp], #80 ; 16-byte Folded Reload1076; GISEL-NEXT: ret1077entry:1078 %input_val = load i512, ptr %input, align 641079 %shift_ext = zext i32 %shift to i5121080 %shifted = ashr i512 %input_val, %shift_ext1081 store i512 %shifted, ptr %result, align 641082 ret void1083}1084 1085; i1024 shift functions1086define void @test_shl_i1024(ptr %result, ptr %input, i32 %shift) {1087; SDAG-LABEL: test_shl_i1024:1088; SDAG: ; %bb.0: ; %entry1089; SDAG-NEXT: sub sp, sp, #3521090; SDAG-NEXT: stp x28, x27, [sp, #256] ; 16-byte Folded Spill1091; SDAG-NEXT: stp x26, x25, [sp, #272] ; 16-byte Folded Spill1092; SDAG-NEXT: stp x24, x23, [sp, #288] ; 16-byte Folded Spill1093; SDAG-NEXT: stp x22, x21, [sp, #304] ; 16-byte Folded Spill1094; SDAG-NEXT: stp x20, x19, [sp, #320] ; 16-byte Folded Spill1095; SDAG-NEXT: stp x29, x30, [sp, #336] ; 16-byte Folded Spill1096; SDAG-NEXT: .cfi_def_cfa_offset 3521097; SDAG-NEXT: .cfi_offset w30, -81098; SDAG-NEXT: .cfi_offset w29, -161099; SDAG-NEXT: .cfi_offset w19, -241100; SDAG-NEXT: .cfi_offset w20, -321101; SDAG-NEXT: .cfi_offset w21, -401102; SDAG-NEXT: .cfi_offset w22, -481103; SDAG-NEXT: .cfi_offset w23, -561104; SDAG-NEXT: .cfi_offset w24, -641105; SDAG-NEXT: .cfi_offset w25, -721106; SDAG-NEXT: .cfi_offset w26, -801107; SDAG-NEXT: .cfi_offset w27, -881108; SDAG-NEXT: .cfi_offset w28, -961109; SDAG-NEXT: ldp x8, x9, [x1, #112]1110; SDAG-NEXT: movi.2d v0, #00000000000000001111; SDAG-NEXT: ldp q1, q2, [x1]1112; SDAG-NEXT: mov x10, sp1113; SDAG-NEXT: ldp q3, q4, [x1, #32]1114; SDAG-NEXT: add x10, x10, #1281115; SDAG-NEXT: ldp q5, q6, [x1, #64]1116; SDAG-NEXT: mvn w4, w21117; SDAG-NEXT: ldr q7, [x1, #96]1118; SDAG-NEXT: stp x8, x9, [sp, #240]1119; SDAG-NEXT: mov w8, w21120; SDAG-NEXT: lsr x9, x8, #31121; SDAG-NEXT: stp q0, q0, [sp]1122; SDAG-NEXT: stp q0, q0, [sp, #32]1123; SDAG-NEXT: ldp x29, x30, [sp, #336] ; 16-byte Folded Reload1124; SDAG-NEXT: and x9, x9, #0x781125; SDAG-NEXT: stp q0, q0, [sp, #64]1126; SDAG-NEXT: stp q0, q0, [sp, #96]1127; SDAG-NEXT: sub x1, x10, x91128; SDAG-NEXT: and x10, x8, #0x3f1129; SDAG-NEXT: stp q2, q3, [sp, #144]1130; SDAG-NEXT: eor x10, x10, #0x3f1131; SDAG-NEXT: stp q4, q5, [sp, #176]1132; SDAG-NEXT: stp q6, q7, [sp, #208]1133; SDAG-NEXT: str q1, [sp, #128]1134; SDAG-NEXT: ldp x6, x19, [x1, #64]1135; SDAG-NEXT: ldr x26, [x1, #96]1136; SDAG-NEXT: ldp x22, x23, [x1, #80]1137; SDAG-NEXT: ldp x27, x24, [x1, #104]1138; SDAG-NEXT: lsr x20, x6, #11139; SDAG-NEXT: lsr x21, x19, #11140; SDAG-NEXT: lsl x19, x19, x81141; SDAG-NEXT: ldp x9, x13, [x1]1142; SDAG-NEXT: lsl x25, x22, x81143; SDAG-NEXT: lsr x20, x20, x101144; SDAG-NEXT: ldp x11, x14, [x1, #16]1145; SDAG-NEXT: ldp x12, x15, [x1, #32]1146; SDAG-NEXT: lsr x21, x21, x41147; SDAG-NEXT: ldp x17, x2, [x1, #48]1148; SDAG-NEXT: orr x19, x19, x201149; SDAG-NEXT: ldr x1, [x1, #120]1150; SDAG-NEXT: lsr x20, x24, #11151; SDAG-NEXT: lsr x16, x13, #11152; SDAG-NEXT: lsr x3, x14, #11153; SDAG-NEXT: lsr x5, x15, #11154; SDAG-NEXT: orr x21, x25, x211155; SDAG-NEXT: lsr x7, x2, #11156; SDAG-NEXT: lsr x25, x23, #11157; SDAG-NEXT: lsr x28, x27, #11158; SDAG-NEXT: lsl x1, x1, x81159; SDAG-NEXT: lsr x20, x20, x101160; SDAG-NEXT: lsr x16, x16, x41161; SDAG-NEXT: lsr x3, x3, x41162; SDAG-NEXT: lsr x5, x5, x41163; SDAG-NEXT: lsr x7, x7, x41164; SDAG-NEXT: lsr x22, x22, #11165; SDAG-NEXT: lsr x25, x25, x41166; SDAG-NEXT: lsr x4, x28, x41167; SDAG-NEXT: orr x1, x1, x201168; SDAG-NEXT: lsl x20, x23, x81169; SDAG-NEXT: lsl x23, x24, x81170; SDAG-NEXT: lsr x28, x26, #11171; SDAG-NEXT: lsr x22, x22, x101172; SDAG-NEXT: lsl x24, x27, x81173; SDAG-NEXT: orr x4, x23, x41174; SDAG-NEXT: lsl x6, x6, x81175; SDAG-NEXT: lsl x2, x2, x81176; SDAG-NEXT: lsr x27, x28, x101177; SDAG-NEXT: stp x4, x1, [x0, #112]1178; SDAG-NEXT: lsl x1, x26, x81179; SDAG-NEXT: orr x20, x20, x221180; SDAG-NEXT: lsr x4, x9, #11181; SDAG-NEXT: lsl x13, x13, x81182; SDAG-NEXT: orr x22, x24, x271183; SDAG-NEXT: orr x1, x1, x251184; SDAG-NEXT: stp x21, x20, [x0, #80]1185; SDAG-NEXT: lsr x20, x17, #11186; SDAG-NEXT: stp x1, x22, [x0, #96]1187; SDAG-NEXT: lsr x1, x11, #11188; SDAG-NEXT: lsr x21, x12, #11189; SDAG-NEXT: lsl x14, x14, x81190; SDAG-NEXT: lsl x15, x15, x81191; SDAG-NEXT: lsr x20, x20, x101192; SDAG-NEXT: lsl x17, x17, x81193; SDAG-NEXT: orr x6, x6, x71194; SDAG-NEXT: lsr x7, x21, x101195; SDAG-NEXT: lsl x12, x12, x81196; SDAG-NEXT: lsr x1, x1, x101197; SDAG-NEXT: lsl x11, x11, x81198; SDAG-NEXT: lsr x10, x4, x101199; SDAG-NEXT: stp x6, x19, [x0, #64]1200; SDAG-NEXT: orr x2, x2, x201201; SDAG-NEXT: lsl x8, x9, x81202; SDAG-NEXT: orr x17, x17, x51203; SDAG-NEXT: ldp x20, x19, [sp, #320] ; 16-byte Folded Reload1204; SDAG-NEXT: orr x15, x15, x71205; SDAG-NEXT: ldp x22, x21, [sp, #304] ; 16-byte Folded Reload1206; SDAG-NEXT: orr x12, x12, x31207; SDAG-NEXT: ldp x24, x23, [sp, #288] ; 16-byte Folded Reload1208; SDAG-NEXT: orr x14, x14, x11209; SDAG-NEXT: ldp x26, x25, [sp, #272] ; 16-byte Folded Reload1210; SDAG-NEXT: orr x11, x11, x161211; SDAG-NEXT: ldp x28, x27, [sp, #256] ; 16-byte Folded Reload1212; SDAG-NEXT: orr x9, x13, x101213; SDAG-NEXT: stp x17, x2, [x0, #48]1214; SDAG-NEXT: stp x12, x15, [x0, #32]1215; SDAG-NEXT: stp x11, x14, [x0, #16]1216; SDAG-NEXT: stp x8, x9, [x0]1217; SDAG-NEXT: add sp, sp, #3521218; SDAG-NEXT: ret1219;1220; GISEL-LABEL: test_shl_i1024:1221; GISEL: ; %bb.0: ; %entry1222; GISEL-NEXT: sub sp, sp, #4321223; GISEL-NEXT: stp x28, x27, [sp, #336] ; 16-byte Folded Spill1224; GISEL-NEXT: stp x26, x25, [sp, #352] ; 16-byte Folded Spill1225; GISEL-NEXT: stp x24, x23, [sp, #368] ; 16-byte Folded Spill1226; GISEL-NEXT: stp x22, x21, [sp, #384] ; 16-byte Folded Spill1227; GISEL-NEXT: stp x20, x19, [sp, #400] ; 16-byte Folded Spill1228; GISEL-NEXT: stp x29, x30, [sp, #416] ; 16-byte Folded Spill1229; GISEL-NEXT: .cfi_def_cfa_offset 4321230; GISEL-NEXT: .cfi_offset w30, -81231; GISEL-NEXT: .cfi_offset w29, -161232; GISEL-NEXT: .cfi_offset w19, -241233; GISEL-NEXT: .cfi_offset w20, -321234; GISEL-NEXT: .cfi_offset w21, -401235; GISEL-NEXT: .cfi_offset w22, -481236; GISEL-NEXT: .cfi_offset w23, -561237; GISEL-NEXT: .cfi_offset w24, -641238; GISEL-NEXT: .cfi_offset w25, -721239; GISEL-NEXT: .cfi_offset w26, -801240; GISEL-NEXT: .cfi_offset w27, -881241; GISEL-NEXT: .cfi_offset w28, -961242; GISEL-NEXT: ldp x10, x11, [x1]1243; GISEL-NEXT: mov w8, w21244; GISEL-NEXT: lsr x9, x8, #61245; GISEL-NEXT: and x12, x8, #0x3f1246; GISEL-NEXT: str x0, [sp, #144] ; 8-byte Spill1247; GISEL-NEXT: and x14, x8, #0x3f1248; GISEL-NEXT: mov w13, #64 ; =0x401249; GISEL-NEXT: and x16, x8, #0x3f1250; GISEL-NEXT: lsl x0, x10, x121251; GISEL-NEXT: cmp x9, #01252; GISEL-NEXT: sub x2, x13, x141253; GISEL-NEXT: lsr x3, x10, x21254; GISEL-NEXT: lsl x6, x11, x141255; GISEL-NEXT: and x14, x8, #0x3f1256; GISEL-NEXT: csel x12, x0, xzr, eq1257; GISEL-NEXT: cmp x9, #11258; GISEL-NEXT: lsr x20, x11, x21259; GISEL-NEXT: csel x12, xzr, x12, eq1260; GISEL-NEXT: cmp x9, #21261; GISEL-NEXT: mov x24, x01262; GISEL-NEXT: csel x12, xzr, x12, eq1263; GISEL-NEXT: cmp x9, #31264; GISEL-NEXT: mov x7, x31265; GISEL-NEXT: csel x12, xzr, x12, eq1266; GISEL-NEXT: cmp x9, #41267; GISEL-NEXT: mov x28, x11268; GISEL-NEXT: csel x12, xzr, x12, eq1269; GISEL-NEXT: cmp x9, #51270; GISEL-NEXT: and x21, x8, #0x3f1271; GISEL-NEXT: csel x12, xzr, x12, eq1272; GISEL-NEXT: cmp x9, #61273; GISEL-NEXT: str x6, [sp, #24] ; 8-byte Spill1274; GISEL-NEXT: csel x12, xzr, x12, eq1275; GISEL-NEXT: cmp x9, #71276; GISEL-NEXT: str x28, [sp, #304] ; 8-byte Spill1277; GISEL-NEXT: csel x12, xzr, x12, eq1278; GISEL-NEXT: cmp x9, #81279; GISEL-NEXT: str x7, [sp, #272] ; 8-byte Spill1280; GISEL-NEXT: csel x12, xzr, x12, eq1281; GISEL-NEXT: cmp x9, #91282; GISEL-NEXT: str x20, [sp, #112] ; 8-byte Spill1283; GISEL-NEXT: csel x12, xzr, x12, eq1284; GISEL-NEXT: cmp x9, #101285; GISEL-NEXT: csel x12, xzr, x12, eq1286; GISEL-NEXT: cmp x9, #111287; GISEL-NEXT: csel x12, xzr, x12, eq1288; GISEL-NEXT: cmp x9, #121289; GISEL-NEXT: csel x12, xzr, x12, eq1290; GISEL-NEXT: cmp x9, #131291; GISEL-NEXT: csel x12, xzr, x12, eq1292; GISEL-NEXT: cmp x9, #141293; GISEL-NEXT: csel x12, xzr, x12, eq1294; GISEL-NEXT: cmp x9, #151295; GISEL-NEXT: csel x12, xzr, x12, eq1296; GISEL-NEXT: cmp x8, #01297; GISEL-NEXT: csel x10, x10, x12, eq1298; GISEL-NEXT: tst x8, #0x3f1299; GISEL-NEXT: str x10, [sp, #232] ; 8-byte Spill1300; GISEL-NEXT: csel x10, xzr, x3, eq1301; GISEL-NEXT: cmp x9, #01302; GISEL-NEXT: orr x10, x6, x101303; GISEL-NEXT: csel x10, x10, xzr, eq1304; GISEL-NEXT: cmp x9, #11305; GISEL-NEXT: csel x10, x0, x10, eq1306; GISEL-NEXT: cmp x9, #21307; GISEL-NEXT: csel x10, xzr, x10, eq1308; GISEL-NEXT: cmp x9, #31309; GISEL-NEXT: csel x10, xzr, x10, eq1310; GISEL-NEXT: cmp x9, #41311; GISEL-NEXT: csel x10, xzr, x10, eq1312; GISEL-NEXT: cmp x9, #51313; GISEL-NEXT: csel x10, xzr, x10, eq1314; GISEL-NEXT: cmp x9, #61315; GISEL-NEXT: csel x10, xzr, x10, eq1316; GISEL-NEXT: cmp x9, #71317; GISEL-NEXT: csel x10, xzr, x10, eq1318; GISEL-NEXT: cmp x9, #81319; GISEL-NEXT: csel x10, xzr, x10, eq1320; GISEL-NEXT: cmp x9, #91321; GISEL-NEXT: csel x10, xzr, x10, eq1322; GISEL-NEXT: cmp x9, #101323; GISEL-NEXT: csel x10, xzr, x10, eq1324; GISEL-NEXT: cmp x9, #111325; GISEL-NEXT: csel x10, xzr, x10, eq1326; GISEL-NEXT: cmp x9, #121327; GISEL-NEXT: csel x10, xzr, x10, eq1328; GISEL-NEXT: cmp x9, #131329; GISEL-NEXT: csel x13, xzr, x10, eq1330; GISEL-NEXT: cmp x9, #141331; GISEL-NEXT: ldp x12, x10, [x1, #16]1332; GISEL-NEXT: csel x13, xzr, x13, eq1333; GISEL-NEXT: cmp x9, #151334; GISEL-NEXT: csel x13, xzr, x13, eq1335; GISEL-NEXT: cmp x8, #01336; GISEL-NEXT: lsl x26, x12, x141337; GISEL-NEXT: csel x11, x11, x13, eq1338; GISEL-NEXT: tst x8, #0x3f1339; GISEL-NEXT: str x11, [sp, #224] ; 8-byte Spill1340; GISEL-NEXT: csel x11, xzr, x20, eq1341; GISEL-NEXT: cmp x9, #01342; GISEL-NEXT: orr x11, x26, x111343; GISEL-NEXT: lsr x15, x12, x21344; GISEL-NEXT: lsl x30, x10, x161345; GISEL-NEXT: csel x11, x11, xzr, eq1346; GISEL-NEXT: tst x8, #0x3f1347; GISEL-NEXT: lsr x17, x10, x21348; GISEL-NEXT: csel x13, xzr, x3, eq1349; GISEL-NEXT: cmp x9, #11350; GISEL-NEXT: orr x13, x6, x131351; GISEL-NEXT: csel x11, x13, x11, eq1352; GISEL-NEXT: cmp x9, #21353; GISEL-NEXT: csel x11, x0, x11, eq1354; GISEL-NEXT: cmp x9, #31355; GISEL-NEXT: csel x11, xzr, x11, eq1356; GISEL-NEXT: cmp x9, #41357; GISEL-NEXT: csel x11, xzr, x11, eq1358; GISEL-NEXT: cmp x9, #51359; GISEL-NEXT: csel x11, xzr, x11, eq1360; GISEL-NEXT: cmp x9, #61361; GISEL-NEXT: csel x11, xzr, x11, eq1362; GISEL-NEXT: cmp x9, #71363; GISEL-NEXT: csel x11, xzr, x11, eq1364; GISEL-NEXT: cmp x9, #81365; GISEL-NEXT: csel x11, xzr, x11, eq1366; GISEL-NEXT: cmp x9, #91367; GISEL-NEXT: csel x11, xzr, x11, eq1368; GISEL-NEXT: cmp x9, #101369; GISEL-NEXT: csel x11, xzr, x11, eq1370; GISEL-NEXT: cmp x9, #111371; GISEL-NEXT: csel x11, xzr, x11, eq1372; GISEL-NEXT: cmp x9, #121373; GISEL-NEXT: csel x11, xzr, x11, eq1374; GISEL-NEXT: cmp x9, #131375; GISEL-NEXT: csel x11, xzr, x11, eq1376; GISEL-NEXT: cmp x9, #141377; GISEL-NEXT: csel x11, xzr, x11, eq1378; GISEL-NEXT: cmp x9, #151379; GISEL-NEXT: csel x11, xzr, x11, eq1380; GISEL-NEXT: cmp x8, #01381; GISEL-NEXT: csel x11, x12, x11, eq1382; GISEL-NEXT: tst x8, #0x3f1383; GISEL-NEXT: str x11, [sp, #216] ; 8-byte Spill1384; GISEL-NEXT: csel x11, xzr, x15, eq1385; GISEL-NEXT: cmp x9, #01386; GISEL-NEXT: orr x11, x30, x111387; GISEL-NEXT: csel x11, x11, xzr, eq1388; GISEL-NEXT: tst x8, #0x3f1389; GISEL-NEXT: csel x12, xzr, x20, eq1390; GISEL-NEXT: cmp x9, #11391; GISEL-NEXT: orr x12, x26, x121392; GISEL-NEXT: csel x11, x12, x11, eq1393; GISEL-NEXT: tst x8, #0x3f1394; GISEL-NEXT: csel x12, xzr, x3, eq1395; GISEL-NEXT: cmp x9, #21396; GISEL-NEXT: orr x12, x6, x121397; GISEL-NEXT: csel x11, x12, x11, eq1398; GISEL-NEXT: cmp x9, #31399; GISEL-NEXT: csel x11, x0, x11, eq1400; GISEL-NEXT: cmp x9, #41401; GISEL-NEXT: csel x11, xzr, x11, eq1402; GISEL-NEXT: cmp x9, #51403; GISEL-NEXT: csel x11, xzr, x11, eq1404; GISEL-NEXT: cmp x9, #61405; GISEL-NEXT: csel x11, xzr, x11, eq1406; GISEL-NEXT: cmp x9, #71407; GISEL-NEXT: csel x11, xzr, x11, eq1408; GISEL-NEXT: cmp x9, #81409; GISEL-NEXT: csel x11, xzr, x11, eq1410; GISEL-NEXT: cmp x9, #91411; GISEL-NEXT: csel x11, xzr, x11, eq1412; GISEL-NEXT: cmp x9, #101413; GISEL-NEXT: csel x11, xzr, x11, eq1414; GISEL-NEXT: cmp x9, #111415; GISEL-NEXT: csel x11, xzr, x11, eq1416; GISEL-NEXT: cmp x9, #121417; GISEL-NEXT: csel x11, xzr, x11, eq1418; GISEL-NEXT: cmp x9, #131419; GISEL-NEXT: csel x13, xzr, x11, eq1420; GISEL-NEXT: cmp x9, #141421; GISEL-NEXT: ldp x12, x11, [x1, #32]1422; GISEL-NEXT: csel x13, xzr, x13, eq1423; GISEL-NEXT: cmp x9, #151424; GISEL-NEXT: csel x13, xzr, x13, eq1425; GISEL-NEXT: cmp x8, #01426; GISEL-NEXT: lsl x0, x12, x161427; GISEL-NEXT: csel x10, x10, x13, eq1428; GISEL-NEXT: tst x8, #0x3f1429; GISEL-NEXT: str x10, [sp, #208] ; 8-byte Spill1430; GISEL-NEXT: csel x10, xzr, x17, eq1431; GISEL-NEXT: cmp x9, #01432; GISEL-NEXT: orr x10, x0, x101433; GISEL-NEXT: lsr x4, x12, x21434; GISEL-NEXT: lsl x19, x11, x161435; GISEL-NEXT: csel x10, x10, xzr, eq1436; GISEL-NEXT: tst x8, #0x3f1437; GISEL-NEXT: mov x16, x151438; GISEL-NEXT: csel x13, xzr, x15, eq1439; GISEL-NEXT: cmp x9, #11440; GISEL-NEXT: str x4, [sp, #248] ; 8-byte Spill1441; GISEL-NEXT: orr x13, x30, x131442; GISEL-NEXT: str x0, [sp, #48] ; 8-byte Spill1443; GISEL-NEXT: csel x10, x13, x10, eq1444; GISEL-NEXT: tst x8, #0x3f1445; GISEL-NEXT: csel x13, xzr, x20, eq1446; GISEL-NEXT: cmp x9, #21447; GISEL-NEXT: orr x13, x26, x131448; GISEL-NEXT: csel x10, x13, x10, eq1449; GISEL-NEXT: tst x8, #0x3f1450; GISEL-NEXT: csel x13, xzr, x3, eq1451; GISEL-NEXT: cmp x9, #31452; GISEL-NEXT: orr x13, x6, x131453; GISEL-NEXT: csel x10, x13, x10, eq1454; GISEL-NEXT: cmp x9, #41455; GISEL-NEXT: csel x10, x24, x10, eq1456; GISEL-NEXT: cmp x9, #51457; GISEL-NEXT: csel x10, xzr, x10, eq1458; GISEL-NEXT: cmp x9, #61459; GISEL-NEXT: csel x10, xzr, x10, eq1460; GISEL-NEXT: cmp x9, #71461; GISEL-NEXT: csel x10, xzr, x10, eq1462; GISEL-NEXT: cmp x9, #81463; GISEL-NEXT: csel x10, xzr, x10, eq1464; GISEL-NEXT: cmp x9, #91465; GISEL-NEXT: csel x10, xzr, x10, eq1466; GISEL-NEXT: cmp x9, #101467; GISEL-NEXT: csel x10, xzr, x10, eq1468; GISEL-NEXT: cmp x9, #111469; GISEL-NEXT: csel x10, xzr, x10, eq1470; GISEL-NEXT: cmp x9, #121471; GISEL-NEXT: csel x10, xzr, x10, eq1472; GISEL-NEXT: cmp x9, #131473; GISEL-NEXT: csel x10, xzr, x10, eq1474; GISEL-NEXT: cmp x9, #141475; GISEL-NEXT: csel x10, xzr, x10, eq1476; GISEL-NEXT: cmp x9, #151477; GISEL-NEXT: csel x10, xzr, x10, eq1478; GISEL-NEXT: cmp x8, #01479; GISEL-NEXT: csel x10, x12, x10, eq1480; GISEL-NEXT: tst x8, #0x3f1481; GISEL-NEXT: str x10, [sp, #200] ; 8-byte Spill1482; GISEL-NEXT: csel x10, xzr, x4, eq1483; GISEL-NEXT: cmp x9, #01484; GISEL-NEXT: orr x10, x19, x101485; GISEL-NEXT: csel x10, x10, xzr, eq1486; GISEL-NEXT: tst x8, #0x3f1487; GISEL-NEXT: csel x12, xzr, x17, eq1488; GISEL-NEXT: cmp x9, #11489; GISEL-NEXT: orr x12, x0, x121490; GISEL-NEXT: csel x10, x12, x10, eq1491; GISEL-NEXT: tst x8, #0x3f1492; GISEL-NEXT: csel x12, xzr, x15, eq1493; GISEL-NEXT: cmp x9, #21494; GISEL-NEXT: and x15, x8, #0x3f1495; GISEL-NEXT: orr x12, x30, x121496; GISEL-NEXT: csel x10, x12, x10, eq1497; GISEL-NEXT: tst x8, #0x3f1498; GISEL-NEXT: csel x12, xzr, x20, eq1499; GISEL-NEXT: cmp x9, #31500; GISEL-NEXT: orr x12, x26, x121501; GISEL-NEXT: csel x10, x12, x10, eq1502; GISEL-NEXT: tst x8, #0x3f1503; GISEL-NEXT: csel x12, xzr, x3, eq1504; GISEL-NEXT: cmp x9, #41505; GISEL-NEXT: lsr x3, x11, x21506; GISEL-NEXT: orr x12, x6, x121507; GISEL-NEXT: csel x10, x12, x10, eq1508; GISEL-NEXT: cmp x9, #51509; GISEL-NEXT: csel x10, x24, x10, eq1510; GISEL-NEXT: cmp x9, #61511; GISEL-NEXT: csel x10, xzr, x10, eq1512; GISEL-NEXT: cmp x9, #71513; GISEL-NEXT: csel x10, xzr, x10, eq1514; GISEL-NEXT: cmp x9, #81515; GISEL-NEXT: csel x10, xzr, x10, eq1516; GISEL-NEXT: cmp x9, #91517; GISEL-NEXT: csel x10, xzr, x10, eq1518; GISEL-NEXT: cmp x9, #101519; GISEL-NEXT: csel x10, xzr, x10, eq1520; GISEL-NEXT: cmp x9, #111521; GISEL-NEXT: csel x10, xzr, x10, eq1522; GISEL-NEXT: cmp x9, #121523; GISEL-NEXT: csel x10, xzr, x10, eq1524; GISEL-NEXT: cmp x9, #131525; GISEL-NEXT: csel x13, xzr, x10, eq1526; GISEL-NEXT: cmp x9, #141527; GISEL-NEXT: ldp x12, x10, [x1, #48]1528; GISEL-NEXT: csel x13, xzr, x13, eq1529; GISEL-NEXT: cmp x9, #151530; GISEL-NEXT: csel x13, xzr, x13, eq1531; GISEL-NEXT: cmp x8, #01532; GISEL-NEXT: lsl x22, x12, x151533; GISEL-NEXT: csel x11, x11, x13, eq1534; GISEL-NEXT: tst x8, #0x3f1535; GISEL-NEXT: str x11, [sp, #192] ; 8-byte Spill1536; GISEL-NEXT: csel x11, xzr, x3, eq1537; GISEL-NEXT: cmp x9, #01538; GISEL-NEXT: orr x11, x22, x111539; GISEL-NEXT: lsl x5, x10, x151540; GISEL-NEXT: lsr x27, x10, x21541; GISEL-NEXT: csel x11, x11, xzr, eq1542; GISEL-NEXT: tst x8, #0x3f1543; GISEL-NEXT: csel x13, xzr, x4, eq1544; GISEL-NEXT: cmp x9, #11545; GISEL-NEXT: mov x25, x271546; GISEL-NEXT: orr x13, x19, x131547; GISEL-NEXT: mov x14, x51548; GISEL-NEXT: str x27, [sp, #328] ; 8-byte Spill1549; GISEL-NEXT: csel x11, x13, x11, eq1550; GISEL-NEXT: tst x8, #0x3f1551; GISEL-NEXT: csel x13, xzr, x17, eq1552; GISEL-NEXT: cmp x9, #21553; GISEL-NEXT: orr x13, x0, x131554; GISEL-NEXT: csel x11, x13, x11, eq1555; GISEL-NEXT: tst x8, #0x3f1556; GISEL-NEXT: csel x13, xzr, x16, eq1557; GISEL-NEXT: cmp x9, #31558; GISEL-NEXT: orr x13, x30, x131559; GISEL-NEXT: csel x11, x13, x11, eq1560; GISEL-NEXT: tst x8, #0x3f1561; GISEL-NEXT: csel x13, xzr, x20, eq1562; GISEL-NEXT: cmp x9, #41563; GISEL-NEXT: orr x13, x26, x131564; GISEL-NEXT: csel x11, x13, x11, eq1565; GISEL-NEXT: tst x8, #0x3f1566; GISEL-NEXT: csel x13, xzr, x7, eq1567; GISEL-NEXT: cmp x9, #51568; GISEL-NEXT: orr x13, x6, x131569; GISEL-NEXT: csel x11, x13, x11, eq1570; GISEL-NEXT: cmp x9, #61571; GISEL-NEXT: lsr x13, x12, x21572; GISEL-NEXT: csel x11, x24, x11, eq1573; GISEL-NEXT: cmp x9, #71574; GISEL-NEXT: csel x11, xzr, x11, eq1575; GISEL-NEXT: cmp x9, #81576; GISEL-NEXT: mov x15, x131577; GISEL-NEXT: csel x11, xzr, x11, eq1578; GISEL-NEXT: cmp x9, #91579; GISEL-NEXT: csel x11, xzr, x11, eq1580; GISEL-NEXT: cmp x9, #101581; GISEL-NEXT: csel x11, xzr, x11, eq1582; GISEL-NEXT: cmp x9, #111583; GISEL-NEXT: csel x11, xzr, x11, eq1584; GISEL-NEXT: cmp x9, #121585; GISEL-NEXT: csel x11, xzr, x11, eq1586; GISEL-NEXT: cmp x9, #131587; GISEL-NEXT: csel x11, xzr, x11, eq1588; GISEL-NEXT: cmp x9, #141589; GISEL-NEXT: csel x11, xzr, x11, eq1590; GISEL-NEXT: cmp x9, #151591; GISEL-NEXT: csel x11, xzr, x11, eq1592; GISEL-NEXT: cmp x8, #01593; GISEL-NEXT: csel x11, x12, x11, eq1594; GISEL-NEXT: tst x8, #0x3f1595; GISEL-NEXT: str x11, [sp, #184] ; 8-byte Spill1596; GISEL-NEXT: csel x11, xzr, x13, eq1597; GISEL-NEXT: cmp x9, #01598; GISEL-NEXT: orr x11, x5, x111599; GISEL-NEXT: csel x11, x11, xzr, eq1600; GISEL-NEXT: tst x8, #0x3f1601; GISEL-NEXT: csel x12, xzr, x3, eq1602; GISEL-NEXT: cmp x9, #11603; GISEL-NEXT: orr x12, x22, x121604; GISEL-NEXT: csel x11, x12, x11, eq1605; GISEL-NEXT: tst x8, #0x3f1606; GISEL-NEXT: csel x12, xzr, x4, eq1607; GISEL-NEXT: cmp x9, #21608; GISEL-NEXT: orr x12, x19, x121609; GISEL-NEXT: csel x11, x12, x11, eq1610; GISEL-NEXT: tst x8, #0x3f1611; GISEL-NEXT: csel x12, xzr, x17, eq1612; GISEL-NEXT: cmp x9, #31613; GISEL-NEXT: orr x12, x0, x121614; GISEL-NEXT: csel x11, x12, x11, eq1615; GISEL-NEXT: tst x8, #0x3f1616; GISEL-NEXT: csel x12, xzr, x16, eq1617; GISEL-NEXT: cmp x9, #41618; GISEL-NEXT: orr x12, x30, x121619; GISEL-NEXT: csel x11, x12, x11, eq1620; GISEL-NEXT: tst x8, #0x3f1621; GISEL-NEXT: csel x12, xzr, x20, eq1622; GISEL-NEXT: cmp x9, #51623; GISEL-NEXT: orr x12, x26, x121624; GISEL-NEXT: csel x11, x12, x11, eq1625; GISEL-NEXT: tst x8, #0x3f1626; GISEL-NEXT: csel x12, xzr, x7, eq1627; GISEL-NEXT: cmp x9, #61628; GISEL-NEXT: orr x12, x6, x121629; GISEL-NEXT: csel x11, x12, x11, eq1630; GISEL-NEXT: cmp x9, #71631; GISEL-NEXT: csel x11, x24, x11, eq1632; GISEL-NEXT: cmp x9, #81633; GISEL-NEXT: csel x11, xzr, x11, eq1634; GISEL-NEXT: cmp x9, #91635; GISEL-NEXT: csel x11, xzr, x11, eq1636; GISEL-NEXT: cmp x9, #101637; GISEL-NEXT: csel x11, xzr, x11, eq1638; GISEL-NEXT: cmp x9, #111639; GISEL-NEXT: csel x11, xzr, x11, eq1640; GISEL-NEXT: cmp x9, #121641; GISEL-NEXT: csel x11, xzr, x11, eq1642; GISEL-NEXT: cmp x9, #131643; GISEL-NEXT: csel x11, xzr, x11, eq1644; GISEL-NEXT: cmp x9, #141645; GISEL-NEXT: csel x12, xzr, x11, eq1646; GISEL-NEXT: ldp x11, x1, [x1, #64]1647; GISEL-NEXT: cmp x9, #151648; GISEL-NEXT: csel x12, xzr, x12, eq1649; GISEL-NEXT: cmp x8, #01650; GISEL-NEXT: csel x12, x10, x12, eq1651; GISEL-NEXT: tst x8, #0x3f1652; GISEL-NEXT: lsl x23, x11, x211653; GISEL-NEXT: str x12, [sp, #176] ; 8-byte Spill1654; GISEL-NEXT: csel x12, xzr, x27, eq1655; GISEL-NEXT: cmp x9, #01656; GISEL-NEXT: orr x12, x23, x121657; GISEL-NEXT: lsr x21, x11, x21658; GISEL-NEXT: str x23, [sp, #288] ; 8-byte Spill1659; GISEL-NEXT: csel x12, x12, xzr, eq1660; GISEL-NEXT: tst x8, #0x3f1661; GISEL-NEXT: csel x13, xzr, x13, eq1662; GISEL-NEXT: cmp x9, #11663; GISEL-NEXT: orr x13, x5, x131664; GISEL-NEXT: csel x12, x13, x12, eq1665; GISEL-NEXT: tst x8, #0x3f1666; GISEL-NEXT: csel x13, xzr, x3, eq1667; GISEL-NEXT: cmp x9, #21668; GISEL-NEXT: orr x13, x22, x131669; GISEL-NEXT: csel x12, x13, x12, eq1670; GISEL-NEXT: tst x8, #0x3f1671; GISEL-NEXT: csel x13, xzr, x4, eq1672; GISEL-NEXT: cmp x9, #31673; GISEL-NEXT: orr x13, x19, x131674; GISEL-NEXT: csel x12, x13, x12, eq1675; GISEL-NEXT: tst x8, #0x3f1676; GISEL-NEXT: csel x13, xzr, x17, eq1677; GISEL-NEXT: cmp x9, #41678; GISEL-NEXT: orr x13, x0, x131679; GISEL-NEXT: csel x12, x13, x12, eq1680; GISEL-NEXT: tst x8, #0x3f1681; GISEL-NEXT: csel x13, xzr, x16, eq1682; GISEL-NEXT: cmp x9, #51683; GISEL-NEXT: orr x13, x30, x131684; GISEL-NEXT: csel x12, x13, x12, eq1685; GISEL-NEXT: tst x8, #0x3f1686; GISEL-NEXT: csel x13, xzr, x20, eq1687; GISEL-NEXT: cmp x9, #61688; GISEL-NEXT: orr x13, x26, x131689; GISEL-NEXT: csel x12, x13, x12, eq1690; GISEL-NEXT: tst x8, #0x3f1691; GISEL-NEXT: csel x13, xzr, x7, eq1692; GISEL-NEXT: cmp x9, #71693; GISEL-NEXT: orr x13, x6, x131694; GISEL-NEXT: csel x12, x13, x12, eq1695; GISEL-NEXT: cmp x9, #81696; GISEL-NEXT: and x13, x8, #0x3f1697; GISEL-NEXT: csel x12, x24, x12, eq1698; GISEL-NEXT: cmp x9, #91699; GISEL-NEXT: lsl x10, x1, x131700; GISEL-NEXT: csel x12, xzr, x12, eq1701; GISEL-NEXT: cmp x9, #101702; GISEL-NEXT: csel x12, xzr, x12, eq1703; GISEL-NEXT: cmp x9, #111704; GISEL-NEXT: stp x10, x15, [sp, #312] ; 16-byte Folded Spill1705; GISEL-NEXT: csel x12, xzr, x12, eq1706; GISEL-NEXT: cmp x9, #121707; GISEL-NEXT: csel x12, xzr, x12, eq1708; GISEL-NEXT: cmp x9, #131709; GISEL-NEXT: csel x12, xzr, x12, eq1710; GISEL-NEXT: cmp x9, #141711; GISEL-NEXT: csel x12, xzr, x12, eq1712; GISEL-NEXT: cmp x9, #151713; GISEL-NEXT: csel x12, xzr, x12, eq1714; GISEL-NEXT: cmp x8, #01715; GISEL-NEXT: csel x11, x11, x12, eq1716; GISEL-NEXT: tst x8, #0x3f1717; GISEL-NEXT: str x11, [sp, #168] ; 8-byte Spill1718; GISEL-NEXT: csel x11, xzr, x21, eq1719; GISEL-NEXT: cmp x9, #01720; GISEL-NEXT: orr x11, x10, x111721; GISEL-NEXT: mov x10, x231722; GISEL-NEXT: csel x11, x11, xzr, eq1723; GISEL-NEXT: tst x8, #0x3f1724; GISEL-NEXT: csel x12, xzr, x27, eq1725; GISEL-NEXT: cmp x9, #11726; GISEL-NEXT: mov x27, x241727; GISEL-NEXT: orr x12, x23, x121728; GISEL-NEXT: mov x23, x151729; GISEL-NEXT: csel x11, x12, x11, eq1730; GISEL-NEXT: tst x8, #0x3f1731; GISEL-NEXT: csel x12, xzr, x15, eq1732; GISEL-NEXT: cmp x9, #21733; GISEL-NEXT: mov x15, x221734; GISEL-NEXT: orr x12, x5, x121735; GISEL-NEXT: mov x5, x31736; GISEL-NEXT: csel x11, x12, x11, eq1737; GISEL-NEXT: tst x8, #0x3f1738; GISEL-NEXT: stp x14, x5, [sp, #256] ; 16-byte Folded Spill1739; GISEL-NEXT: csel x12, xzr, x3, eq1740; GISEL-NEXT: cmp x9, #31741; GISEL-NEXT: mov x5, x41742; GISEL-NEXT: orr x12, x22, x121743; GISEL-NEXT: lsr x22, x1, x21744; GISEL-NEXT: csel x11, x12, x11, eq1745; GISEL-NEXT: tst x8, #0x3f1746; GISEL-NEXT: csel x12, xzr, x4, eq1747; GISEL-NEXT: cmp x9, #41748; GISEL-NEXT: str x22, [sp, #240] ; 8-byte Spill1749; GISEL-NEXT: orr x12, x19, x121750; GISEL-NEXT: csel x11, x12, x11, eq1751; GISEL-NEXT: tst x8, #0x3f1752; GISEL-NEXT: csel x12, xzr, x17, eq1753; GISEL-NEXT: cmp x9, #51754; GISEL-NEXT: orr x12, x0, x121755; GISEL-NEXT: csel x11, x12, x11, eq1756; GISEL-NEXT: tst x8, #0x3f1757; GISEL-NEXT: csel x12, xzr, x16, eq1758; GISEL-NEXT: cmp x9, #61759; GISEL-NEXT: orr x12, x30, x121760; GISEL-NEXT: csel x11, x12, x11, eq1761; GISEL-NEXT: tst x8, #0x3f1762; GISEL-NEXT: csel x12, xzr, x20, eq1763; GISEL-NEXT: cmp x9, #71764; GISEL-NEXT: orr x12, x26, x121765; GISEL-NEXT: csel x11, x12, x11, eq1766; GISEL-NEXT: tst x8, #0x3f1767; GISEL-NEXT: csel x12, xzr, x7, eq1768; GISEL-NEXT: cmp x9, #81769; GISEL-NEXT: mov x7, x141770; GISEL-NEXT: orr x12, x6, x121771; GISEL-NEXT: mov x6, x281772; GISEL-NEXT: csel x11, x12, x11, eq1773; GISEL-NEXT: cmp x9, #91774; GISEL-NEXT: csel x11, x24, x11, eq1775; GISEL-NEXT: cmp x9, #101776; GISEL-NEXT: ldr x24, [x6, #88]1777; GISEL-NEXT: csel x11, xzr, x11, eq1778; GISEL-NEXT: cmp x9, #111779; GISEL-NEXT: ldr x6, [sp, #272] ; 8-byte Reload1780; GISEL-NEXT: csel x11, xzr, x11, eq1781; GISEL-NEXT: cmp x9, #121782; GISEL-NEXT: csel x11, xzr, x11, eq1783; GISEL-NEXT: cmp x9, #131784; GISEL-NEXT: csel x11, xzr, x11, eq1785; GISEL-NEXT: cmp x9, #141786; GISEL-NEXT: csel x11, xzr, x11, eq1787; GISEL-NEXT: cmp x9, #151788; GISEL-NEXT: csel x12, xzr, x11, eq1789; GISEL-NEXT: ldr x11, [x28, #80]1790; GISEL-NEXT: cmp x8, #01791; GISEL-NEXT: csel x12, x1, x12, eq1792; GISEL-NEXT: mov x28, x21793; GISEL-NEXT: tst x8, #0x3f1794; GISEL-NEXT: lsl x2, x11, x131795; GISEL-NEXT: str x12, [sp, #160] ; 8-byte Spill1796; GISEL-NEXT: csel x12, xzr, x22, eq1797; GISEL-NEXT: cmp x9, #01798; GISEL-NEXT: ldr x1, [sp, #312] ; 8-byte Reload1799; GISEL-NEXT: str x28, [sp, #16] ; 8-byte Spill1800; GISEL-NEXT: orr x12, x2, x121801; GISEL-NEXT: str x2, [sp, #280] ; 8-byte Spill1802; GISEL-NEXT: csel x12, x12, xzr, eq1803; GISEL-NEXT: tst x8, #0x3f1804; GISEL-NEXT: csel x13, xzr, x21, eq1805; GISEL-NEXT: cmp x9, #11806; GISEL-NEXT: orr x13, x1, x131807; GISEL-NEXT: csel x12, x13, x12, eq1808; GISEL-NEXT: tst x8, #0x3f1809; GISEL-NEXT: csel x13, xzr, x25, eq1810; GISEL-NEXT: cmp x9, #21811; GISEL-NEXT: mov x25, x161812; GISEL-NEXT: orr x13, x10, x131813; GISEL-NEXT: mov x10, x301814; GISEL-NEXT: str x25, [sp, #80] ; 8-byte Spill1815; GISEL-NEXT: csel x12, x13, x12, eq1816; GISEL-NEXT: tst x8, #0x3f1817; GISEL-NEXT: csel x13, xzr, x23, eq1818; GISEL-NEXT: cmp x9, #31819; GISEL-NEXT: mov x23, x31820; GISEL-NEXT: orr x13, x14, x131821; GISEL-NEXT: mov x14, x171822; GISEL-NEXT: csel x12, x13, x12, eq1823; GISEL-NEXT: tst x8, #0x3f1824; GISEL-NEXT: stp x19, x14, [sp, #64] ; 16-byte Folded Spill1825; GISEL-NEXT: csel x13, xzr, x3, eq1826; GISEL-NEXT: cmp x9, #41827; GISEL-NEXT: mov x3, x211828; GISEL-NEXT: orr x13, x15, x131829; GISEL-NEXT: str x3, [sp, #32] ; 8-byte Spill1830; GISEL-NEXT: csel x12, x13, x12, eq1831; GISEL-NEXT: tst x8, #0x3f1832; GISEL-NEXT: csel x13, xzr, x4, eq1833; GISEL-NEXT: cmp x9, #51834; GISEL-NEXT: mov x4, x01835; GISEL-NEXT: orr x13, x19, x131836; GISEL-NEXT: csel x12, x13, x12, eq1837; GISEL-NEXT: tst x8, #0x3f1838; GISEL-NEXT: csel x13, xzr, x17, eq1839; GISEL-NEXT: cmp x9, #61840; GISEL-NEXT: mov x17, x271841; GISEL-NEXT: orr x13, x0, x131842; GISEL-NEXT: ldr x0, [sp, #24] ; 8-byte Reload1843; GISEL-NEXT: csel x12, x13, x12, eq1844; GISEL-NEXT: tst x8, #0x3f1845; GISEL-NEXT: csel x13, xzr, x16, eq1846; GISEL-NEXT: cmp x9, #71847; GISEL-NEXT: orr x13, x30, x131848; GISEL-NEXT: ldp x30, x16, [sp, #320] ; 16-byte Folded Reload1849; GISEL-NEXT: csel x12, x13, x12, eq1850; GISEL-NEXT: tst x8, #0x3f1851; GISEL-NEXT: csel x13, xzr, x20, eq1852; GISEL-NEXT: cmp x9, #81853; GISEL-NEXT: orr x13, x26, x131854; GISEL-NEXT: csel x12, x13, x12, eq1855; GISEL-NEXT: tst x8, #0x3f1856; GISEL-NEXT: csel x13, xzr, x6, eq1857; GISEL-NEXT: cmp x9, #91858; GISEL-NEXT: orr x13, x0, x131859; GISEL-NEXT: csel x12, x13, x12, eq1860; GISEL-NEXT: cmp x9, #101861; GISEL-NEXT: lsr x13, x11, x281862; GISEL-NEXT: csel x12, x27, x12, eq1863; GISEL-NEXT: cmp x9, #111864; GISEL-NEXT: csel x12, xzr, x12, eq1865; GISEL-NEXT: cmp x9, #121866; GISEL-NEXT: str x13, [sp, #96] ; 8-byte Spill1867; GISEL-NEXT: csel x12, xzr, x12, eq1868; GISEL-NEXT: cmp x9, #131869; GISEL-NEXT: csel x12, xzr, x12, eq1870; GISEL-NEXT: cmp x9, #141871; GISEL-NEXT: csel x12, xzr, x12, eq1872; GISEL-NEXT: cmp x9, #151873; GISEL-NEXT: csel x12, xzr, x12, eq1874; GISEL-NEXT: cmp x8, #01875; GISEL-NEXT: csel x11, x11, x12, eq1876; GISEL-NEXT: tst x8, #0x3f1877; GISEL-NEXT: str x11, [sp, #152] ; 8-byte Spill1878; GISEL-NEXT: and x11, x8, #0x3f1879; GISEL-NEXT: lsl x27, x24, x111880; GISEL-NEXT: csel x11, xzr, x13, eq1881; GISEL-NEXT: cmp x9, #01882; GISEL-NEXT: orr x11, x27, x111883; GISEL-NEXT: str x27, [sp, #56] ; 8-byte Spill1884; GISEL-NEXT: csel x11, x11, xzr, eq1885; GISEL-NEXT: tst x8, #0x3f1886; GISEL-NEXT: csel x12, xzr, x22, eq1887; GISEL-NEXT: cmp x9, #11888; GISEL-NEXT: mov x22, x21889; GISEL-NEXT: orr x12, x2, x121890; GISEL-NEXT: mov x2, x141891; GISEL-NEXT: csel x11, x12, x11, eq1892; GISEL-NEXT: tst x8, #0x3f1893; GISEL-NEXT: csel x12, xzr, x21, eq1894; GISEL-NEXT: cmp x9, #21895; GISEL-NEXT: ldr x21, [sp, #288] ; 8-byte Reload1896; GISEL-NEXT: orr x12, x1, x121897; GISEL-NEXT: mov x1, x271898; GISEL-NEXT: csel x11, x12, x11, eq1899; GISEL-NEXT: tst x8, #0x3f1900; GISEL-NEXT: csel x12, xzr, x16, eq1901; GISEL-NEXT: cmp x9, #31902; GISEL-NEXT: orr x12, x21, x121903; GISEL-NEXT: csel x11, x12, x11, eq1904; GISEL-NEXT: tst x8, #0x3f1905; GISEL-NEXT: csel x12, xzr, x30, eq1906; GISEL-NEXT: cmp x9, #41907; GISEL-NEXT: orr x12, x7, x121908; GISEL-NEXT: mov x7, x151909; GISEL-NEXT: csel x11, x12, x11, eq1910; GISEL-NEXT: tst x8, #0x3f1911; GISEL-NEXT: str x7, [sp, #40] ; 8-byte Spill1912; GISEL-NEXT: csel x12, xzr, x23, eq1913; GISEL-NEXT: cmp x9, #51914; GISEL-NEXT: orr x12, x15, x121915; GISEL-NEXT: csel x11, x12, x11, eq1916; GISEL-NEXT: tst x8, #0x3f1917; GISEL-NEXT: csel x12, xzr, x5, eq1918; GISEL-NEXT: cmp x9, #61919; GISEL-NEXT: mov x5, x191920; GISEL-NEXT: orr x12, x19, x121921; GISEL-NEXT: mov x19, x71922; GISEL-NEXT: csel x11, x12, x11, eq1923; GISEL-NEXT: tst x8, #0x3f1924; GISEL-NEXT: csel x12, xzr, x14, eq1925; GISEL-NEXT: cmp x9, #71926; GISEL-NEXT: lsr x14, x24, x281927; GISEL-NEXT: orr x12, x4, x121928; GISEL-NEXT: mov x4, x101929; GISEL-NEXT: csel x11, x12, x11, eq1930; GISEL-NEXT: tst x8, #0x3f1931; GISEL-NEXT: csel x12, xzr, x25, eq1932; GISEL-NEXT: cmp x9, #81933; GISEL-NEXT: orr x12, x10, x121934; GISEL-NEXT: ldr x10, [sp, #304] ; 8-byte Reload1935; GISEL-NEXT: csel x11, x12, x11, eq1936; GISEL-NEXT: tst x8, #0x3f1937; GISEL-NEXT: csel x12, xzr, x20, eq1938; GISEL-NEXT: cmp x9, #91939; GISEL-NEXT: orr x12, x26, x121940; GISEL-NEXT: csel x11, x12, x11, eq1941; GISEL-NEXT: tst x8, #0x3f1942; GISEL-NEXT: csel x12, xzr, x6, eq1943; GISEL-NEXT: cmp x9, #101944; GISEL-NEXT: orr x12, x0, x121945; GISEL-NEXT: csel x11, x12, x11, eq1946; GISEL-NEXT: cmp x9, #111947; GISEL-NEXT: csel x11, x17, x11, eq1948; GISEL-NEXT: cmp x9, #121949; GISEL-NEXT: csel x11, xzr, x11, eq1950; GISEL-NEXT: cmp x9, #131951; GISEL-NEXT: csel x11, xzr, x11, eq1952; GISEL-NEXT: cmp x9, #141953; GISEL-NEXT: csel x11, xzr, x11, eq1954; GISEL-NEXT: cmp x9, #151955; GISEL-NEXT: csel x12, xzr, x11, eq1956; GISEL-NEXT: ldp x11, x6, [x10, #96]1957; GISEL-NEXT: cmp x8, #01958; GISEL-NEXT: and x10, x8, #0x3f1959; GISEL-NEXT: csel x12, x24, x12, eq1960; GISEL-NEXT: tst x8, #0x3f1961; GISEL-NEXT: ldr x24, [sp, #248] ; 8-byte Reload1962; GISEL-NEXT: lsl x15, x11, x101963; GISEL-NEXT: csel x10, xzr, x14, eq1964; GISEL-NEXT: cmp x9, #01965; GISEL-NEXT: str x12, [sp, #136] ; 8-byte Spill1966; GISEL-NEXT: ldr x12, [sp, #312] ; 8-byte Reload1967; GISEL-NEXT: orr x10, x15, x101968; GISEL-NEXT: str x15, [sp, #296] ; 8-byte Spill1969; GISEL-NEXT: mov x15, x131970; GISEL-NEXT: csel x10, x10, xzr, eq1971; GISEL-NEXT: tst x8, #0x3f1972; GISEL-NEXT: csel x13, xzr, x13, eq1973; GISEL-NEXT: cmp x9, #11974; GISEL-NEXT: orr x13, x27, x131975; GISEL-NEXT: ldr x27, [sp, #240] ; 8-byte Reload1976; GISEL-NEXT: csel x10, x13, x10, eq1977; GISEL-NEXT: tst x8, #0x3f1978; GISEL-NEXT: csel x13, xzr, x27, eq1979; GISEL-NEXT: cmp x9, #21980; GISEL-NEXT: orr x13, x22, x131981; GISEL-NEXT: ldr x22, [sp, #272] ; 8-byte Reload1982; GISEL-NEXT: csel x10, x13, x10, eq1983; GISEL-NEXT: tst x8, #0x3f1984; GISEL-NEXT: csel x13, xzr, x3, eq1985; GISEL-NEXT: cmp x9, #31986; GISEL-NEXT: orr x13, x12, x131987; GISEL-NEXT: csel x10, x13, x10, eq1988; GISEL-NEXT: tst x8, #0x3f1989; GISEL-NEXT: csel x13, xzr, x16, eq1990; GISEL-NEXT: cmp x9, #41991; GISEL-NEXT: mov x16, x171992; GISEL-NEXT: orr x13, x21, x131993; GISEL-NEXT: ldp x23, x21, [sp, #256] ; 16-byte Folded Reload1994; GISEL-NEXT: csel x10, x13, x10, eq1995; GISEL-NEXT: tst x8, #0x3f1996; GISEL-NEXT: csel x13, xzr, x30, eq1997; GISEL-NEXT: cmp x9, #51998; GISEL-NEXT: mov x30, x01999; GISEL-NEXT: orr x13, x23, x132000; GISEL-NEXT: csel x10, x13, x10, eq2001; GISEL-NEXT: tst x8, #0x3f2002; GISEL-NEXT: csel x13, xzr, x21, eq2003; GISEL-NEXT: cmp x9, #62004; GISEL-NEXT: orr x13, x7, x132005; GISEL-NEXT: mov x7, x142006; GISEL-NEXT: csel x10, x13, x10, eq2007; GISEL-NEXT: tst x8, #0x3f2008; GISEL-NEXT: csel x13, xzr, x24, eq2009; GISEL-NEXT: cmp x9, #72010; GISEL-NEXT: orr x13, x5, x132011; GISEL-NEXT: ldr x5, [sp, #48] ; 8-byte Reload2012; GISEL-NEXT: csel x10, x13, x10, eq2013; GISEL-NEXT: tst x8, #0x3f2014; GISEL-NEXT: csel x13, xzr, x2, eq2015; GISEL-NEXT: cmp x9, #82016; GISEL-NEXT: ldr x2, [sp, #296] ; 8-byte Reload2017; GISEL-NEXT: orr x13, x5, x132018; GISEL-NEXT: csel x10, x13, x10, eq2019; GISEL-NEXT: tst x8, #0x3f2020; GISEL-NEXT: csel x13, xzr, x25, eq2021; GISEL-NEXT: cmp x9, #92022; GISEL-NEXT: mov x25, x62023; GISEL-NEXT: orr x13, x4, x132024; GISEL-NEXT: csel x10, x13, x10, eq2025; GISEL-NEXT: tst x8, #0x3f2026; GISEL-NEXT: csel x13, xzr, x20, eq2027; GISEL-NEXT: cmp x9, #102028; GISEL-NEXT: orr x13, x26, x132029; GISEL-NEXT: csel x10, x13, x10, eq2030; GISEL-NEXT: tst x8, #0x3f2031; GISEL-NEXT: csel x13, xzr, x22, eq2032; GISEL-NEXT: cmp x9, #112033; GISEL-NEXT: orr x13, x0, x132034; GISEL-NEXT: csel x10, x13, x10, eq2035; GISEL-NEXT: cmp x9, #122036; GISEL-NEXT: lsr x13, x11, x282037; GISEL-NEXT: csel x10, x17, x10, eq2038; GISEL-NEXT: cmp x9, #132039; GISEL-NEXT: ldr x17, [sp, #80] ; 8-byte Reload2040; GISEL-NEXT: csel x10, xzr, x10, eq2041; GISEL-NEXT: cmp x9, #142042; GISEL-NEXT: str x13, [sp, #104] ; 8-byte Spill2043; GISEL-NEXT: csel x10, xzr, x10, eq2044; GISEL-NEXT: cmp x9, #152045; GISEL-NEXT: csel x10, xzr, x10, eq2046; GISEL-NEXT: cmp x8, #02047; GISEL-NEXT: csel x10, x11, x10, eq2048; GISEL-NEXT: tst x8, #0x3f2049; GISEL-NEXT: str x10, [sp, #128] ; 8-byte Spill2050; GISEL-NEXT: and x10, x8, #0x3f2051; GISEL-NEXT: lsl x11, x6, x102052; GISEL-NEXT: csel x10, xzr, x13, eq2053; GISEL-NEXT: cmp x9, #02054; GISEL-NEXT: ldp x0, x13, [sp, #280] ; 16-byte Folded Reload2055; GISEL-NEXT: mov x6, x162056; GISEL-NEXT: orr x10, x11, x102057; GISEL-NEXT: str x11, [sp, #88] ; 8-byte Spill2058; GISEL-NEXT: csel x10, x10, xzr, eq2059; GISEL-NEXT: tst x8, #0x3f2060; GISEL-NEXT: csel x11, xzr, x14, eq2061; GISEL-NEXT: cmp x9, #12062; GISEL-NEXT: orr x11, x2, x112063; GISEL-NEXT: csel x10, x11, x10, eq2064; GISEL-NEXT: tst x8, #0x3f2065; GISEL-NEXT: csel x11, xzr, x15, eq2066; GISEL-NEXT: cmp x9, #22067; GISEL-NEXT: mov x15, x32068; GISEL-NEXT: orr x11, x1, x112069; GISEL-NEXT: csel x10, x11, x10, eq2070; GISEL-NEXT: tst x8, #0x3f2071; GISEL-NEXT: csel x11, xzr, x27, eq2072; GISEL-NEXT: cmp x9, #32073; GISEL-NEXT: orr x11, x0, x112074; GISEL-NEXT: csel x10, x11, x10, eq2075; GISEL-NEXT: tst x8, #0x3f2076; GISEL-NEXT: csel x11, xzr, x3, eq2077; GISEL-NEXT: ldp x14, x3, [sp, #320] ; 16-byte Folded Reload2078; GISEL-NEXT: cmp x9, #42079; GISEL-NEXT: orr x11, x12, x112080; GISEL-NEXT: csel x10, x11, x10, eq2081; GISEL-NEXT: tst x8, #0x3f2082; GISEL-NEXT: csel x11, xzr, x3, eq2083; GISEL-NEXT: cmp x9, #52084; GISEL-NEXT: orr x11, x13, x112085; GISEL-NEXT: csel x10, x11, x10, eq2086; GISEL-NEXT: tst x8, #0x3f2087; GISEL-NEXT: csel x11, xzr, x14, eq2088; GISEL-NEXT: cmp x9, #62089; GISEL-NEXT: orr x11, x23, x112090; GISEL-NEXT: mov x23, x52091; GISEL-NEXT: csel x10, x11, x10, eq2092; GISEL-NEXT: tst x8, #0x3f2093; GISEL-NEXT: csel x11, xzr, x21, eq2094; GISEL-NEXT: cmp x9, #72095; GISEL-NEXT: mov x21, x42096; GISEL-NEXT: orr x11, x19, x112097; GISEL-NEXT: ldp x12, x19, [sp, #64] ; 16-byte Folded Reload2098; GISEL-NEXT: csel x10, x11, x10, eq2099; GISEL-NEXT: tst x8, #0x3f2100; GISEL-NEXT: csel x11, xzr, x24, eq2101; GISEL-NEXT: cmp x9, #82102; GISEL-NEXT: orr x11, x12, x112103; GISEL-NEXT: csel x10, x11, x10, eq2104; GISEL-NEXT: tst x8, #0x3f2105; GISEL-NEXT: csel x11, xzr, x19, eq2106; GISEL-NEXT: cmp x9, #92107; GISEL-NEXT: orr x11, x5, x112108; GISEL-NEXT: mov x5, x302109; GISEL-NEXT: csel x10, x11, x10, eq2110; GISEL-NEXT: tst x8, #0x3f2111; GISEL-NEXT: csel x11, xzr, x17, eq2112; GISEL-NEXT: cmp x9, #102113; GISEL-NEXT: orr x11, x4, x112114; GISEL-NEXT: csel x10, x11, x10, eq2115; GISEL-NEXT: tst x8, #0x3f2116; GISEL-NEXT: csel x11, xzr, x20, eq2117; GISEL-NEXT: cmp x9, #112118; GISEL-NEXT: orr x11, x26, x112119; GISEL-NEXT: csel x10, x11, x10, eq2120; GISEL-NEXT: tst x8, #0x3f2121; GISEL-NEXT: csel x11, xzr, x22, eq2122; GISEL-NEXT: cmp x9, #122123; GISEL-NEXT: orr x11, x30, x112124; GISEL-NEXT: csel x10, x11, x10, eq2125; GISEL-NEXT: cmp x9, #132126; GISEL-NEXT: csel x10, x16, x10, eq2127; GISEL-NEXT: cmp x9, #142128; GISEL-NEXT: ldr x16, [sp, #304] ; 8-byte Reload2129; GISEL-NEXT: csel x10, xzr, x10, eq2130; GISEL-NEXT: cmp x9, #152131; GISEL-NEXT: csel x11, xzr, x10, eq2132; GISEL-NEXT: cmp x8, #02133; GISEL-NEXT: ldp x10, x4, [x16, #112]2134; GISEL-NEXT: csel x11, x25, x11, eq2135; GISEL-NEXT: str x11, [sp, #120] ; 8-byte Spill2136; GISEL-NEXT: lsr x11, x25, x282137; GISEL-NEXT: and x16, x8, #0x3f2138; GISEL-NEXT: tst x8, #0x3f2139; GISEL-NEXT: ldr x25, [sp, #88] ; 8-byte Reload2140; GISEL-NEXT: lsl x24, x10, x162141; GISEL-NEXT: csel x1, xzr, x11, eq2142; GISEL-NEXT: cmp x9, #02143; GISEL-NEXT: ldp x16, x28, [sp, #96] ; 16-byte Folded Reload2144; GISEL-NEXT: orr x1, x24, x12145; GISEL-NEXT: csel x1, x1, xzr, eq2146; GISEL-NEXT: tst x8, #0x3f2147; GISEL-NEXT: csel x30, xzr, x28, eq2148; GISEL-NEXT: cmp x9, #12149; GISEL-NEXT: orr x30, x25, x302150; GISEL-NEXT: csel x1, x30, x1, eq2151; GISEL-NEXT: tst x8, #0x3f2152; GISEL-NEXT: csel x30, xzr, x7, eq2153; GISEL-NEXT: cmp x9, #22154; GISEL-NEXT: orr x30, x2, x302155; GISEL-NEXT: ldr x2, [sp, #56] ; 8-byte Reload2156; GISEL-NEXT: csel x1, x30, x1, eq2157; GISEL-NEXT: tst x8, #0x3f2158; GISEL-NEXT: csel x30, xzr, x16, eq2159; GISEL-NEXT: cmp x9, #32160; GISEL-NEXT: orr x30, x2, x302161; GISEL-NEXT: csel x1, x30, x1, eq2162; GISEL-NEXT: tst x8, #0x3f2163; GISEL-NEXT: csel x30, xzr, x27, eq2164; GISEL-NEXT: cmp x9, #42165; GISEL-NEXT: mov x27, x132166; GISEL-NEXT: orr x30, x0, x302167; GISEL-NEXT: ldr x0, [sp, #248] ; 8-byte Reload2168; GISEL-NEXT: csel x1, x30, x1, eq2169; GISEL-NEXT: tst x8, #0x3f2170; GISEL-NEXT: csel x30, xzr, x15, eq2171; GISEL-NEXT: ldr x15, [sp, #312] ; 8-byte Reload2172; GISEL-NEXT: cmp x9, #52173; GISEL-NEXT: orr x30, x15, x302174; GISEL-NEXT: csel x1, x30, x1, eq2175; GISEL-NEXT: tst x8, #0x3f2176; GISEL-NEXT: csel x30, xzr, x3, eq2177; GISEL-NEXT: cmp x9, #62178; GISEL-NEXT: ldr x3, [sp, #40] ; 8-byte Reload2179; GISEL-NEXT: orr x30, x13, x302180; GISEL-NEXT: csel x1, x30, x1, eq2181; GISEL-NEXT: tst x8, #0x3f2182; GISEL-NEXT: csel x30, xzr, x14, eq2183; GISEL-NEXT: ldp x13, x14, [sp, #256] ; 16-byte Folded Reload2184; GISEL-NEXT: cmp x9, #72185; GISEL-NEXT: orr x30, x13, x302186; GISEL-NEXT: csel x1, x30, x1, eq2187; GISEL-NEXT: tst x8, #0x3f2188; GISEL-NEXT: csel x30, xzr, x14, eq2189; GISEL-NEXT: cmp x9, #82190; GISEL-NEXT: orr x30, x3, x302191; GISEL-NEXT: csel x1, x30, x1, eq2192; GISEL-NEXT: tst x8, #0x3f2193; GISEL-NEXT: csel x30, xzr, x0, eq2194; GISEL-NEXT: cmp x9, #92195; GISEL-NEXT: orr x30, x12, x302196; GISEL-NEXT: csel x1, x30, x1, eq2197; GISEL-NEXT: tst x8, #0x3f2198; GISEL-NEXT: csel x30, xzr, x19, eq2199; GISEL-NEXT: cmp x9, #102200; GISEL-NEXT: orr x30, x23, x302201; GISEL-NEXT: csel x1, x30, x1, eq2202; GISEL-NEXT: tst x8, #0x3f2203; GISEL-NEXT: csel x30, xzr, x17, eq2204; GISEL-NEXT: cmp x9, #112205; GISEL-NEXT: orr x30, x21, x302206; GISEL-NEXT: csel x1, x30, x1, eq2207; GISEL-NEXT: tst x8, #0x3f2208; GISEL-NEXT: csel x30, xzr, x20, eq2209; GISEL-NEXT: cmp x9, #122210; GISEL-NEXT: mov x20, x262211; GISEL-NEXT: orr x30, x26, x302212; GISEL-NEXT: mov x26, x52213; GISEL-NEXT: csel x1, x30, x1, eq2214; GISEL-NEXT: tst x8, #0x3f2215; GISEL-NEXT: csel x30, xzr, x22, eq2216; GISEL-NEXT: cmp x9, #132217; GISEL-NEXT: orr x30, x5, x302218; GISEL-NEXT: ldr x5, [sp, #16] ; 8-byte Reload2219; GISEL-NEXT: csel x1, x30, x1, eq2220; GISEL-NEXT: cmp x9, #142221; GISEL-NEXT: csel x1, x6, x1, eq2222; GISEL-NEXT: cmp x9, #152223; GISEL-NEXT: lsr x30, x10, x52224; GISEL-NEXT: csel x1, xzr, x1, eq2225; GISEL-NEXT: cmp x8, #02226; GISEL-NEXT: csel x5, x10, x1, eq2227; GISEL-NEXT: and x10, x8, #0x3f2228; GISEL-NEXT: tst x8, #0x3f2229; GISEL-NEXT: lsl x10, x4, x102230; GISEL-NEXT: csel x1, xzr, x30, eq2231; GISEL-NEXT: cmp x9, #02232; GISEL-NEXT: ldp x29, x30, [sp, #416] ; 16-byte Folded Reload2233; GISEL-NEXT: orr x10, x10, x12234; GISEL-NEXT: ldr x1, [sp, #296] ; 8-byte Reload2235; GISEL-NEXT: csel x10, x10, xzr, eq2236; GISEL-NEXT: tst x8, #0x3f2237; GISEL-NEXT: csel x11, xzr, x11, eq2238; GISEL-NEXT: cmp x9, #12239; GISEL-NEXT: orr x11, x24, x112240; GISEL-NEXT: csel x10, x11, x10, eq2241; GISEL-NEXT: tst x8, #0x3f2242; GISEL-NEXT: csel x11, xzr, x28, eq2243; GISEL-NEXT: cmp x9, #22244; GISEL-NEXT: orr x11, x25, x112245; GISEL-NEXT: csel x10, x11, x10, eq2246; GISEL-NEXT: tst x8, #0x3f2247; GISEL-NEXT: csel x11, xzr, x7, eq2248; GISEL-NEXT: cmp x9, #32249; GISEL-NEXT: orr x11, x1, x112250; GISEL-NEXT: csel x10, x11, x10, eq2251; GISEL-NEXT: tst x8, #0x3f2252; GISEL-NEXT: csel x11, xzr, x16, eq2253; GISEL-NEXT: cmp x9, #42254; GISEL-NEXT: ldr x16, [sp, #280] ; 8-byte Reload2255; GISEL-NEXT: orr x11, x2, x112256; GISEL-NEXT: csel x10, x11, x10, eq2257; GISEL-NEXT: ldr x11, [sp, #240] ; 8-byte Reload2258; GISEL-NEXT: tst x8, #0x3f2259; GISEL-NEXT: csel x11, xzr, x11, eq2260; GISEL-NEXT: cmp x9, #52261; GISEL-NEXT: orr x11, x16, x112262; GISEL-NEXT: csel x10, x11, x10, eq2263; GISEL-NEXT: ldr x11, [sp, #32] ; 8-byte Reload2264; GISEL-NEXT: tst x8, #0x3f2265; GISEL-NEXT: csel x11, xzr, x11, eq2266; GISEL-NEXT: cmp x9, #62267; GISEL-NEXT: orr x11, x15, x112268; GISEL-NEXT: csel x10, x11, x10, eq2269; GISEL-NEXT: ldr x11, [sp, #328] ; 8-byte Reload2270; GISEL-NEXT: tst x8, #0x3f2271; GISEL-NEXT: csel x11, xzr, x11, eq2272; GISEL-NEXT: cmp x9, #72273; GISEL-NEXT: orr x11, x27, x112274; GISEL-NEXT: ldp x28, x27, [sp, #336] ; 16-byte Folded Reload2275; GISEL-NEXT: csel x10, x11, x10, eq2276; GISEL-NEXT: ldr x11, [sp, #320] ; 8-byte Reload2277; GISEL-NEXT: tst x8, #0x3f2278; GISEL-NEXT: csel x11, xzr, x11, eq2279; GISEL-NEXT: cmp x9, #82280; GISEL-NEXT: orr x11, x13, x112281; GISEL-NEXT: ldr x13, [sp, #144] ; 8-byte Reload2282; GISEL-NEXT: csel x10, x11, x10, eq2283; GISEL-NEXT: tst x8, #0x3f2284; GISEL-NEXT: csel x11, xzr, x14, eq2285; GISEL-NEXT: cmp x9, #92286; GISEL-NEXT: orr x11, x3, x112287; GISEL-NEXT: csel x10, x11, x10, eq2288; GISEL-NEXT: tst x8, #0x3f2289; GISEL-NEXT: csel x11, xzr, x0, eq2290; GISEL-NEXT: cmp x9, #102291; GISEL-NEXT: orr x11, x12, x112292; GISEL-NEXT: csel x10, x11, x10, eq2293; GISEL-NEXT: ldr x11, [sp, #232] ; 8-byte Reload2294; GISEL-NEXT: tst x8, #0x3f2295; GISEL-NEXT: str x11, [x13]2296; GISEL-NEXT: ldp x12, x11, [sp, #216] ; 16-byte Folded Reload2297; GISEL-NEXT: stp x11, x12, [x13, #8]2298; GISEL-NEXT: csel x11, xzr, x19, eq2299; GISEL-NEXT: cmp x9, #112300; GISEL-NEXT: orr x11, x23, x112301; GISEL-NEXT: ldp x24, x23, [sp, #368] ; 16-byte Folded Reload2302; GISEL-NEXT: csel x10, x11, x10, eq2303; GISEL-NEXT: ldr x11, [sp, #208] ; 8-byte Reload2304; GISEL-NEXT: tst x8, #0x3f2305; GISEL-NEXT: str x11, [x13, #24]2306; GISEL-NEXT: ldp x12, x11, [sp, #192] ; 16-byte Folded Reload2307; GISEL-NEXT: stp x11, x12, [x13, #32]2308; GISEL-NEXT: csel x11, xzr, x17, eq2309; GISEL-NEXT: cmp x9, #122310; GISEL-NEXT: orr x11, x21, x112311; GISEL-NEXT: csel x10, x11, x10, eq2312; GISEL-NEXT: ldr x11, [sp, #184] ; 8-byte Reload2313; GISEL-NEXT: tst x8, #0x3f2314; GISEL-NEXT: str x11, [x13, #48]2315; GISEL-NEXT: ldp x12, x11, [sp, #168] ; 16-byte Folded Reload2316; GISEL-NEXT: stp x11, x12, [x13, #56]2317; GISEL-NEXT: ldr x11, [sp, #112] ; 8-byte Reload2318; GISEL-NEXT: ldr x12, [sp, #136] ; 8-byte Reload2319; GISEL-NEXT: csel x11, xzr, x11, eq2320; GISEL-NEXT: cmp x9, #132321; GISEL-NEXT: orr x11, x20, x112322; GISEL-NEXT: ldp x20, x19, [sp, #400] ; 16-byte Folded Reload2323; GISEL-NEXT: csel x10, x11, x10, eq2324; GISEL-NEXT: ldr x11, [sp, #160] ; 8-byte Reload2325; GISEL-NEXT: tst x8, #0x3f2326; GISEL-NEXT: str x11, [x13, #72]2327; GISEL-NEXT: ldr x11, [sp, #152] ; 8-byte Reload2328; GISEL-NEXT: str x11, [x13, #80]2329; GISEL-NEXT: csel x11, xzr, x22, eq2330; GISEL-NEXT: cmp x9, #142331; GISEL-NEXT: orr x11, x26, x112332; GISEL-NEXT: ldp x22, x21, [sp, #384] ; 16-byte Folded Reload2333; GISEL-NEXT: csel x10, x11, x10, eq2334; GISEL-NEXT: cmp x9, #152335; GISEL-NEXT: ldr x9, [sp, #128] ; 8-byte Reload2336; GISEL-NEXT: ldp x26, x25, [sp, #352] ; 16-byte Folded Reload2337; GISEL-NEXT: stp x12, x9, [x13, #88]2338; GISEL-NEXT: csel x9, x6, x10, eq2339; GISEL-NEXT: cmp x8, #02340; GISEL-NEXT: ldr x8, [sp, #120] ; 8-byte Reload2341; GISEL-NEXT: stp x8, x5, [x13, #104]2342; GISEL-NEXT: csel x8, x4, x9, eq2343; GISEL-NEXT: str x8, [x13, #120]2344; GISEL-NEXT: add sp, sp, #4322345; GISEL-NEXT: ret2346entry:2347 %input_val = load i1024, ptr %input, align 1282348 %shift_ext = zext i32 %shift to i10242349 %shifted = shl i1024 %input_val, %shift_ext2350 store i1024 %shifted, ptr %result, align 1282351 ret void2352}2353 2354define void @test_lshr_i1024(ptr %result, ptr %input, i32 %shift) {2355; SDAG-LABEL: test_lshr_i1024:2356; SDAG: ; %bb.0: ; %entry2357; SDAG-NEXT: sub sp, sp, #3362358; SDAG-NEXT: stp x28, x27, [sp, #256] ; 16-byte Folded Spill2359; SDAG-NEXT: stp x26, x25, [sp, #272] ; 16-byte Folded Spill2360; SDAG-NEXT: stp x24, x23, [sp, #288] ; 16-byte Folded Spill2361; SDAG-NEXT: stp x22, x21, [sp, #304] ; 16-byte Folded Spill2362; SDAG-NEXT: stp x20, x19, [sp, #320] ; 16-byte Folded Spill2363; SDAG-NEXT: .cfi_def_cfa_offset 3362364; SDAG-NEXT: .cfi_offset w19, -82365; SDAG-NEXT: .cfi_offset w20, -162366; SDAG-NEXT: .cfi_offset w21, -242367; SDAG-NEXT: .cfi_offset w22, -322368; SDAG-NEXT: .cfi_offset w23, -402369; SDAG-NEXT: .cfi_offset w24, -482370; SDAG-NEXT: .cfi_offset w25, -562371; SDAG-NEXT: .cfi_offset w26, -642372; SDAG-NEXT: .cfi_offset w27, -722373; SDAG-NEXT: .cfi_offset w28, -802374; SDAG-NEXT: ldp x8, x9, [x1, #112]2375; SDAG-NEXT: movi.2d v0, #00000000000000002376; SDAG-NEXT: ldp q1, q2, [x1]2377; SDAG-NEXT: mov x10, sp2378; SDAG-NEXT: ldp q3, q4, [x1, #32]2379; SDAG-NEXT: ldr q7, [x1, #96]2380; SDAG-NEXT: ldp q5, q6, [x1, #64]2381; SDAG-NEXT: mvn w1, w22382; SDAG-NEXT: stp x8, x9, [sp, #112]2383; SDAG-NEXT: mov w8, w22384; SDAG-NEXT: lsr x9, x8, #32385; SDAG-NEXT: stp q2, q3, [sp, #16]2386; SDAG-NEXT: and x14, x8, #0x3f2387; SDAG-NEXT: stp q4, q5, [sp, #48]2388; SDAG-NEXT: eor x15, x14, #0x3f2389; SDAG-NEXT: and x9, x9, #0x782390; SDAG-NEXT: stp q6, q7, [sp, #80]2391; SDAG-NEXT: stp q0, q0, [sp, #128]2392; SDAG-NEXT: add x10, x10, x92393; SDAG-NEXT: stp q0, q0, [sp, #160]2394; SDAG-NEXT: stp q0, q0, [sp, #192]2395; SDAG-NEXT: stp q0, q0, [sp, #224]2396; SDAG-NEXT: str q1, [sp]2397; SDAG-NEXT: ldp x11, x9, [x10, #16]2398; SDAG-NEXT: ldr x16, [x10, #32]2399; SDAG-NEXT: ldp x12, x13, [x10, #40]2400; SDAG-NEXT: ldr x3, [x10, #56]2401; SDAG-NEXT: ldp x4, x6, [x10, #64]2402; SDAG-NEXT: lsl x2, x16, #12403; SDAG-NEXT: lsl x17, x11, #12404; SDAG-NEXT: ldp x24, x26, [x10, #112]2405; SDAG-NEXT: lsl x5, x13, #12406; SDAG-NEXT: lsr x13, x13, x82407; SDAG-NEXT: lsr x11, x11, x82408; SDAG-NEXT: lsl x14, x17, x12409; SDAG-NEXT: lsl x7, x6, #12410; SDAG-NEXT: lsl x17, x2, x12411; SDAG-NEXT: lsl x2, x5, x12412; SDAG-NEXT: ldp x5, x22, [x10, #80]2413; SDAG-NEXT: lsr x19, x4, x82414; SDAG-NEXT: lsl x7, x7, x152415; SDAG-NEXT: lsl x21, x4, #12416; SDAG-NEXT: lsr x6, x6, x82417; SDAG-NEXT: lsl x27, x24, #12418; SDAG-NEXT: lsr x24, x24, x82419; SDAG-NEXT: lsl x23, x5, #12420; SDAG-NEXT: orr x4, x7, x192421; SDAG-NEXT: lsr x25, x22, x82422; SDAG-NEXT: ldp x20, x7, [x10, #96]2423; SDAG-NEXT: lsl x21, x21, x12424; SDAG-NEXT: lsl x23, x23, x12425; SDAG-NEXT: lsl x22, x22, #12426; SDAG-NEXT: lsr x5, x5, x82427; SDAG-NEXT: lsr x16, x16, x82428; SDAG-NEXT: lsl x19, x20, #12429; SDAG-NEXT: orr x6, x6, x232430; SDAG-NEXT: lsl x23, x7, #12431; SDAG-NEXT: lsr x20, x20, x82432; SDAG-NEXT: lsr x7, x7, x82433; SDAG-NEXT: lsl x22, x22, x152434; SDAG-NEXT: lsl x19, x19, x12435; SDAG-NEXT: lsl x1, x27, x12436; SDAG-NEXT: lsl x23, x23, x152437; SDAG-NEXT: orr x5, x22, x52438; SDAG-NEXT: ldp x28, x27, [sp, #256] ; 16-byte Folded Reload2439; SDAG-NEXT: orr x19, x25, x192440; SDAG-NEXT: lsl x25, x26, #12441; SDAG-NEXT: orr x20, x23, x202442; SDAG-NEXT: orr x1, x7, x12443; SDAG-NEXT: ldp x23, x10, [x10]2444; SDAG-NEXT: stp x20, x1, [x0, #96]2445; SDAG-NEXT: lsl x20, x3, #12446; SDAG-NEXT: lsl x25, x25, x152447; SDAG-NEXT: lsr x26, x26, x82448; SDAG-NEXT: stp x5, x19, [x0, #80]2449; SDAG-NEXT: lsr x3, x3, x82450; SDAG-NEXT: lsl x19, x20, x152451; SDAG-NEXT: orr x7, x25, x242452; SDAG-NEXT: lsl x1, x9, #12453; SDAG-NEXT: stp x7, x26, [x0, #112]2454; SDAG-NEXT: lsl x7, x10, #12455; SDAG-NEXT: orr x3, x3, x212456; SDAG-NEXT: orr x13, x19, x132457; SDAG-NEXT: lsl x5, x12, #12458; SDAG-NEXT: lsr x9, x9, x82459; SDAG-NEXT: stp x13, x3, [x0, #48]2460; SDAG-NEXT: lsl x13, x1, x152461; SDAG-NEXT: lsr x23, x23, x82462; SDAG-NEXT: lsr x12, x12, x82463; SDAG-NEXT: lsr x8, x10, x82464; SDAG-NEXT: lsl x10, x7, x152465; SDAG-NEXT: stp x4, x6, [x0, #64]2466; SDAG-NEXT: lsl x4, x5, x152467; SDAG-NEXT: orr x9, x9, x172468; SDAG-NEXT: orr x11, x13, x112469; SDAG-NEXT: ldp x20, x19, [sp, #320] ; 16-byte Folded Reload2470; SDAG-NEXT: stp x11, x9, [x0, #16]2471; SDAG-NEXT: orr x9, x10, x232472; SDAG-NEXT: orr x12, x12, x22473; SDAG-NEXT: ldp x22, x21, [sp, #304] ; 16-byte Folded Reload2474; SDAG-NEXT: orr x16, x4, x162475; SDAG-NEXT: ldp x24, x23, [sp, #288] ; 16-byte Folded Reload2476; SDAG-NEXT: orr x8, x8, x142477; SDAG-NEXT: ldp x26, x25, [sp, #272] ; 16-byte Folded Reload2478; SDAG-NEXT: stp x16, x12, [x0, #32]2479; SDAG-NEXT: stp x9, x8, [x0]2480; SDAG-NEXT: add sp, sp, #3362481; SDAG-NEXT: ret2482;2483; GISEL-LABEL: test_lshr_i1024:2484; GISEL: ; %bb.0: ; %entry2485; GISEL-NEXT: sub sp, sp, #4162486; GISEL-NEXT: stp x28, x27, [sp, #320] ; 16-byte Folded Spill2487; GISEL-NEXT: stp x26, x25, [sp, #336] ; 16-byte Folded Spill2488; GISEL-NEXT: stp x24, x23, [sp, #352] ; 16-byte Folded Spill2489; GISEL-NEXT: stp x22, x21, [sp, #368] ; 16-byte Folded Spill2490; GISEL-NEXT: stp x20, x19, [sp, #384] ; 16-byte Folded Spill2491; GISEL-NEXT: stp x29, x30, [sp, #400] ; 16-byte Folded Spill2492; GISEL-NEXT: .cfi_def_cfa_offset 4162493; GISEL-NEXT: .cfi_offset w30, -82494; GISEL-NEXT: .cfi_offset w29, -162495; GISEL-NEXT: .cfi_offset w19, -242496; GISEL-NEXT: .cfi_offset w20, -322497; GISEL-NEXT: .cfi_offset w21, -402498; GISEL-NEXT: .cfi_offset w22, -482499; GISEL-NEXT: .cfi_offset w23, -562500; GISEL-NEXT: .cfi_offset w24, -642501; GISEL-NEXT: .cfi_offset w25, -722502; GISEL-NEXT: .cfi_offset w26, -802503; GISEL-NEXT: .cfi_offset w27, -882504; GISEL-NEXT: .cfi_offset w28, -962505; GISEL-NEXT: mov w8, w22506; GISEL-NEXT: ldp x20, x16, [x1]2507; GISEL-NEXT: mov w9, #64 ; =0x402508; GISEL-NEXT: and x14, x8, #0x3f2509; GISEL-NEXT: tst x8, #0x3f2510; GISEL-NEXT: sub x15, x9, x142511; GISEL-NEXT: ldp x12, x13, [x1, #16]2512; GISEL-NEXT: lsl x10, x16, x152513; GISEL-NEXT: lsr x9, x8, #62514; GISEL-NEXT: lsr x11, x20, x142515; GISEL-NEXT: lsr x19, x16, x142516; GISEL-NEXT: str x16, [sp, #264] ; 8-byte Spill2517; GISEL-NEXT: csel x10, xzr, x10, eq2518; GISEL-NEXT: lsl x22, x12, x152519; GISEL-NEXT: cmp x9, #02520; GISEL-NEXT: orr x10, x11, x102521; GISEL-NEXT: str x12, [sp, #240] ; 8-byte Spill2522; GISEL-NEXT: lsr x26, x12, x142523; GISEL-NEXT: csel x10, x10, xzr, eq2524; GISEL-NEXT: tst x8, #0x3f2525; GISEL-NEXT: lsl x24, x13, x152526; GISEL-NEXT: csel x11, xzr, x22, eq2527; GISEL-NEXT: cmp x9, #12528; GISEL-NEXT: lsr x5, x13, x142529; GISEL-NEXT: orr x11, x19, x112530; GISEL-NEXT: ldp x12, x16, [x1, #32]2531; GISEL-NEXT: csel x10, x11, x10, eq2532; GISEL-NEXT: tst x8, #0x3f2533; GISEL-NEXT: str x0, [sp, #296] ; 8-byte Spill2534; GISEL-NEXT: csel x11, xzr, x24, eq2535; GISEL-NEXT: cmp x9, #22536; GISEL-NEXT: str x13, [sp, #216] ; 8-byte Spill2537; GISEL-NEXT: lsl x23, x12, x152538; GISEL-NEXT: orr x11, x26, x112539; GISEL-NEXT: stp x12, x16, [sp, #176] ; 16-byte Folded Spill2540; GISEL-NEXT: csel x10, x11, x10, eq2541; GISEL-NEXT: tst x8, #0x3f2542; GISEL-NEXT: lsr x17, x12, x142543; GISEL-NEXT: csel x11, xzr, x23, eq2544; GISEL-NEXT: lsl x0, x16, x152545; GISEL-NEXT: cmp x9, #32546; GISEL-NEXT: orr x11, x5, x112547; GISEL-NEXT: ldp x13, x12, [x1, #48]2548; GISEL-NEXT: csel x10, x11, x10, eq2549; GISEL-NEXT: tst x8, #0x3f2550; GISEL-NEXT: lsr x7, x16, x142551; GISEL-NEXT: csel x11, xzr, x0, eq2552; GISEL-NEXT: cmp x9, #42553; GISEL-NEXT: stp x17, x0, [sp, #152] ; 16-byte Folded Spill2554; GISEL-NEXT: lsl x2, x13, x152555; GISEL-NEXT: orr x11, x17, x112556; GISEL-NEXT: stp x13, x12, [sp, #192] ; 16-byte Folded Spill2557; GISEL-NEXT: csel x10, x11, x10, eq2558; GISEL-NEXT: tst x8, #0x3f2559; GISEL-NEXT: lsr x13, x13, x142560; GISEL-NEXT: csel x11, xzr, x2, eq2561; GISEL-NEXT: lsl x0, x12, x152562; GISEL-NEXT: cmp x9, #52563; GISEL-NEXT: stp x13, x2, [sp, #136] ; 16-byte Folded Spill2564; GISEL-NEXT: orr x11, x7, x112565; GISEL-NEXT: lsr x12, x12, x142566; GISEL-NEXT: ldp x4, x2, [x1, #64]2567; GISEL-NEXT: csel x10, x11, x10, eq2568; GISEL-NEXT: tst x8, #0x3f2569; GISEL-NEXT: ldr x17, [sp, #144] ; 8-byte Reload2570; GISEL-NEXT: stp x5, x23, [sp, #24] ; 16-byte Folded Spill2571; GISEL-NEXT: csel x11, xzr, x0, eq2572; GISEL-NEXT: cmp x9, #62573; GISEL-NEXT: lsl x3, x4, x152574; GISEL-NEXT: orr x11, x13, x112575; GISEL-NEXT: str x4, [sp, #208] ; 8-byte Spill2576; GISEL-NEXT: csel x10, x11, x10, eq2577; GISEL-NEXT: tst x8, #0x3f2578; GISEL-NEXT: lsl x6, x2, x152579; GISEL-NEXT: csel x11, xzr, x3, eq2580; GISEL-NEXT: cmp x9, #72581; GISEL-NEXT: lsr x13, x4, x142582; GISEL-NEXT: orr x11, x12, x112583; GISEL-NEXT: str x2, [sp, #224] ; 8-byte Spill2584; GISEL-NEXT: csel x16, x11, x10, eq2585; GISEL-NEXT: ldp x10, x4, [x1, #80]2586; GISEL-NEXT: tst x8, #0x3f2587; GISEL-NEXT: mov x11, x22588; GISEL-NEXT: stp x13, x12, [sp, #120] ; 16-byte Folded Spill2589; GISEL-NEXT: csel x2, xzr, x6, eq2590; GISEL-NEXT: cmp x9, #82591; GISEL-NEXT: lsr x11, x11, x142592; GISEL-NEXT: orr x2, x13, x22593; GISEL-NEXT: lsl x12, x10, x152594; GISEL-NEXT: str x10, [sp, #232] ; 8-byte Spill2595; GISEL-NEXT: csel x16, x2, x16, eq2596; GISEL-NEXT: tst x8, #0x3f2597; GISEL-NEXT: lsr x10, x10, x142598; GISEL-NEXT: csel x2, xzr, x12, eq2599; GISEL-NEXT: str x12, [sp, #312] ; 8-byte Spill2600; GISEL-NEXT: cmp x9, #92601; GISEL-NEXT: orr x2, x11, x22602; GISEL-NEXT: lsl x12, x4, x152603; GISEL-NEXT: str x10, [sp, #304] ; 8-byte Spill2604; GISEL-NEXT: csel x16, x2, x16, eq2605; GISEL-NEXT: tst x8, #0x3f2606; GISEL-NEXT: lsr x13, x4, x142607; GISEL-NEXT: stp x12, x11, [sp, #104] ; 16-byte Folded Spill2608; GISEL-NEXT: ldr x11, [x1, #96]2609; GISEL-NEXT: csel x2, xzr, x12, eq2610; GISEL-NEXT: orr x2, x10, x22611; GISEL-NEXT: ldp x10, x30, [x1, #104]2612; GISEL-NEXT: cmp x9, #102613; GISEL-NEXT: lsl x28, x11, x152614; GISEL-NEXT: stp x4, x11, [sp, #248] ; 16-byte Folded Spill2615; GISEL-NEXT: csel x16, x2, x16, eq2616; GISEL-NEXT: tst x8, #0x3f2617; GISEL-NEXT: str x3, [sp, #16] ; 8-byte Spill2618; GISEL-NEXT: csel x2, xzr, x28, eq2619; GISEL-NEXT: lsl x12, x10, x152620; GISEL-NEXT: cmp x9, #112621; GISEL-NEXT: orr x2, x13, x22622; GISEL-NEXT: lsl x21, x30, x152623; GISEL-NEXT: stp x10, x30, [sp, #272] ; 16-byte Folded Spill2624; GISEL-NEXT: csel x16, x2, x16, eq2625; GISEL-NEXT: stp x12, x13, [sp, #88] ; 16-byte Folded Spill2626; GISEL-NEXT: tst x8, #0x3f2627; GISEL-NEXT: lsr x13, x11, x142628; GISEL-NEXT: csel x2, xzr, x12, eq2629; GISEL-NEXT: cmp x9, #122630; GISEL-NEXT: ldr x11, [x1, #120]2631; GISEL-NEXT: lsr x10, x10, x142632; GISEL-NEXT: lsr x27, x30, x142633; GISEL-NEXT: orr x4, x13, x22634; GISEL-NEXT: mov x12, x232635; GISEL-NEXT: str x28, [sp, #48] ; 8-byte Spill2636; GISEL-NEXT: csel x16, x4, x16, eq2637; GISEL-NEXT: tst x8, #0x3f2638; GISEL-NEXT: lsl x25, x11, x152639; GISEL-NEXT: csel x1, xzr, x21, eq2640; GISEL-NEXT: cmp x9, #132641; GISEL-NEXT: stp x10, x13, [sp, #72] ; 16-byte Folded Spill2642; GISEL-NEXT: orr x1, x10, x12643; GISEL-NEXT: lsr x10, x11, x142644; GISEL-NEXT: str x11, [sp, #288] ; 8-byte Spill2645; GISEL-NEXT: csel x1, x1, x16, eq2646; GISEL-NEXT: tst x8, #0x3f2647; GISEL-NEXT: str x21, [sp, #40] ; 8-byte Spill2648; GISEL-NEXT: csel x30, xzr, x25, eq2649; GISEL-NEXT: cmp x9, #142650; GISEL-NEXT: stp x27, x10, [sp, #56] ; 16-byte Folded Spill2651; GISEL-NEXT: orr x30, x27, x302652; GISEL-NEXT: ldp x11, x13, [sp, #152] ; 16-byte Folded Reload2653; GISEL-NEXT: csel x1, x30, x1, eq2654; GISEL-NEXT: cmp x9, #152655; GISEL-NEXT: mov x30, x72656; GISEL-NEXT: csel x1, x10, x1, eq2657; GISEL-NEXT: cmp x8, #02658; GISEL-NEXT: csel x10, x20, x1, eq2659; GISEL-NEXT: tst x8, #0x3f2660; GISEL-NEXT: csel x1, xzr, x22, eq2661; GISEL-NEXT: cmp x9, #02662; GISEL-NEXT: str x10, [sp, #168] ; 8-byte Spill2663; GISEL-NEXT: orr x1, x19, x12664; GISEL-NEXT: ldp x20, x14, [sp, #112] ; 16-byte Folded Reload2665; GISEL-NEXT: csel x1, x1, xzr, eq2666; GISEL-NEXT: tst x8, #0x3f2667; GISEL-NEXT: csel x19, xzr, x24, eq2668; GISEL-NEXT: cmp x9, #12669; GISEL-NEXT: orr x19, x26, x192670; GISEL-NEXT: ldp x10, x15, [sp, #304] ; 16-byte Folded Reload2671; GISEL-NEXT: csel x1, x19, x1, eq2672; GISEL-NEXT: tst x8, #0x3f2673; GISEL-NEXT: csel x19, xzr, x23, eq2674; GISEL-NEXT: cmp x9, #22675; GISEL-NEXT: orr x19, x5, x192676; GISEL-NEXT: ldp x16, x22, [sp, #96] ; 16-byte Folded Reload2677; GISEL-NEXT: csel x1, x19, x1, eq2678; GISEL-NEXT: tst x8, #0x3f2679; GISEL-NEXT: csel x19, xzr, x13, eq2680; GISEL-NEXT: cmp x9, #32681; GISEL-NEXT: orr x19, x11, x192682; GISEL-NEXT: ldp x4, x2, [sp, #80] ; 16-byte Folded Reload2683; GISEL-NEXT: csel x1, x19, x1, eq2684; GISEL-NEXT: tst x8, #0x3f2685; GISEL-NEXT: csel x19, xzr, x17, eq2686; GISEL-NEXT: cmp x9, #42687; GISEL-NEXT: orr x19, x7, x192688; GISEL-NEXT: mov x7, x02689; GISEL-NEXT: csel x1, x19, x1, eq2690; GISEL-NEXT: tst x8, #0x3f2691; GISEL-NEXT: csel x19, xzr, x0, eq2692; GISEL-NEXT: ldp x23, x0, [sp, #128] ; 16-byte Folded Reload2693; GISEL-NEXT: cmp x9, #52694; GISEL-NEXT: orr x19, x0, x192695; GISEL-NEXT: csel x1, x19, x1, eq2696; GISEL-NEXT: tst x8, #0x3f2697; GISEL-NEXT: csel x19, xzr, x3, eq2698; GISEL-NEXT: cmp x9, #62699; GISEL-NEXT: orr x19, x23, x192700; GISEL-NEXT: csel x1, x19, x1, eq2701; GISEL-NEXT: tst x8, #0x3f2702; GISEL-NEXT: csel x19, xzr, x6, eq2703; GISEL-NEXT: cmp x9, #72704; GISEL-NEXT: orr x19, x14, x192705; GISEL-NEXT: csel x1, x19, x1, eq2706; GISEL-NEXT: tst x8, #0x3f2707; GISEL-NEXT: csel x19, xzr, x15, eq2708; GISEL-NEXT: cmp x9, #82709; GISEL-NEXT: orr x19, x20, x192710; GISEL-NEXT: csel x1, x19, x1, eq2711; GISEL-NEXT: tst x8, #0x3f2712; GISEL-NEXT: csel x19, xzr, x22, eq2713; GISEL-NEXT: cmp x9, #92714; GISEL-NEXT: orr x19, x10, x192715; GISEL-NEXT: ldr x10, [sp, #264] ; 8-byte Reload2716; GISEL-NEXT: csel x1, x19, x1, eq2717; GISEL-NEXT: tst x8, #0x3f2718; GISEL-NEXT: csel x19, xzr, x28, eq2719; GISEL-NEXT: cmp x9, #102720; GISEL-NEXT: orr x19, x16, x192721; GISEL-NEXT: csel x1, x19, x1, eq2722; GISEL-NEXT: tst x8, #0x3f2723; GISEL-NEXT: csel x19, xzr, x2, eq2724; GISEL-NEXT: cmp x9, #112725; GISEL-NEXT: orr x19, x4, x192726; GISEL-NEXT: csel x1, x19, x1, eq2727; GISEL-NEXT: tst x8, #0x3f2728; GISEL-NEXT: csel x19, xzr, x21, eq2729; GISEL-NEXT: ldp x28, x21, [sp, #64] ; 16-byte Folded Reload2730; GISEL-NEXT: cmp x9, #122731; GISEL-NEXT: orr x19, x21, x192732; GISEL-NEXT: csel x1, x19, x1, eq2733; GISEL-NEXT: tst x8, #0x3f2734; GISEL-NEXT: csel x19, xzr, x25, eq2735; GISEL-NEXT: cmp x9, #132736; GISEL-NEXT: orr x19, x27, x192737; GISEL-NEXT: csel x1, x19, x1, eq2738; GISEL-NEXT: cmp x9, #142739; GISEL-NEXT: csel x1, x28, x1, eq2740; GISEL-NEXT: cmp x9, #152741; GISEL-NEXT: csel x1, xzr, x1, eq2742; GISEL-NEXT: cmp x8, #02743; GISEL-NEXT: csel x10, x10, x1, eq2744; GISEL-NEXT: tst x8, #0x3f2745; GISEL-NEXT: csel x1, xzr, x24, eq2746; GISEL-NEXT: cmp x9, #02747; GISEL-NEXT: mov x24, x112748; GISEL-NEXT: orr x1, x26, x12749; GISEL-NEXT: str x10, [sp, #264] ; 8-byte Spill2750; GISEL-NEXT: ldr x10, [sp, #240] ; 8-byte Reload2751; GISEL-NEXT: csel x1, x1, xzr, eq2752; GISEL-NEXT: tst x8, #0x3f2753; GISEL-NEXT: mov x26, x132754; GISEL-NEXT: csel x19, xzr, x12, eq2755; GISEL-NEXT: cmp x9, #12756; GISEL-NEXT: mov x12, x302757; GISEL-NEXT: orr x19, x5, x192758; GISEL-NEXT: mov x5, x152759; GISEL-NEXT: csel x1, x19, x1, eq2760; GISEL-NEXT: tst x8, #0x3f2761; GISEL-NEXT: csel x19, xzr, x13, eq2762; GISEL-NEXT: cmp x9, #22763; GISEL-NEXT: mov x13, x232764; GISEL-NEXT: orr x19, x11, x192765; GISEL-NEXT: mov x11, x172766; GISEL-NEXT: csel x1, x19, x1, eq2767; GISEL-NEXT: tst x8, #0x3f2768; GISEL-NEXT: csel x19, xzr, x17, eq2769; GISEL-NEXT: cmp x9, #32770; GISEL-NEXT: mov x17, x202771; GISEL-NEXT: orr x19, x30, x192772; GISEL-NEXT: mov x30, x72773; GISEL-NEXT: csel x1, x19, x1, eq2774; GISEL-NEXT: tst x8, #0x3f2775; GISEL-NEXT: mov x27, x302776; GISEL-NEXT: csel x19, xzr, x7, eq2777; GISEL-NEXT: cmp x9, #42778; GISEL-NEXT: mov x7, x142779; GISEL-NEXT: orr x19, x0, x192780; GISEL-NEXT: csel x1, x19, x1, eq2781; GISEL-NEXT: tst x8, #0x3f2782; GISEL-NEXT: csel x19, xzr, x3, eq2783; GISEL-NEXT: cmp x9, #52784; GISEL-NEXT: mov x3, x222785; GISEL-NEXT: orr x19, x23, x192786; GISEL-NEXT: ldr x23, [sp, #16] ; 8-byte Reload2787; GISEL-NEXT: csel x1, x19, x1, eq2788; GISEL-NEXT: tst x8, #0x3f2789; GISEL-NEXT: csel x19, xzr, x6, eq2790; GISEL-NEXT: cmp x9, #62791; GISEL-NEXT: orr x19, x14, x192792; GISEL-NEXT: csel x1, x19, x1, eq2793; GISEL-NEXT: tst x8, #0x3f2794; GISEL-NEXT: csel x19, xzr, x15, eq2795; GISEL-NEXT: cmp x9, #72796; GISEL-NEXT: ldr x15, [sp, #304] ; 8-byte Reload2797; GISEL-NEXT: orr x19, x20, x192798; GISEL-NEXT: ldp x14, x20, [sp, #40] ; 16-byte Folded Reload2799; GISEL-NEXT: csel x1, x19, x1, eq2800; GISEL-NEXT: tst x8, #0x3f2801; GISEL-NEXT: csel x19, xzr, x22, eq2802; GISEL-NEXT: cmp x9, #82803; GISEL-NEXT: ldr x22, [sp, #56] ; 8-byte Reload2804; GISEL-NEXT: orr x19, x15, x192805; GISEL-NEXT: csel x1, x19, x1, eq2806; GISEL-NEXT: tst x8, #0x3f2807; GISEL-NEXT: csel x19, xzr, x20, eq2808; GISEL-NEXT: cmp x9, #92809; GISEL-NEXT: orr x19, x16, x192810; GISEL-NEXT: csel x1, x19, x1, eq2811; GISEL-NEXT: tst x8, #0x3f2812; GISEL-NEXT: csel x19, xzr, x2, eq2813; GISEL-NEXT: cmp x9, #102814; GISEL-NEXT: orr x19, x4, x192815; GISEL-NEXT: csel x1, x19, x1, eq2816; GISEL-NEXT: tst x8, #0x3f2817; GISEL-NEXT: csel x19, xzr, x14, eq2818; GISEL-NEXT: cmp x9, #112819; GISEL-NEXT: orr x19, x21, x192820; GISEL-NEXT: csel x1, x19, x1, eq2821; GISEL-NEXT: tst x8, #0x3f2822; GISEL-NEXT: csel x19, xzr, x25, eq2823; GISEL-NEXT: cmp x9, #122824; GISEL-NEXT: orr x19, x22, x192825; GISEL-NEXT: csel x1, x19, x1, eq2826; GISEL-NEXT: cmp x9, #132827; GISEL-NEXT: csel x1, x28, x1, eq2828; GISEL-NEXT: cmp x9, #142829; GISEL-NEXT: csel x1, xzr, x1, eq2830; GISEL-NEXT: cmp x9, #152831; GISEL-NEXT: csel x1, xzr, x1, eq2832; GISEL-NEXT: cmp x8, #02833; GISEL-NEXT: csel x10, x10, x1, eq2834; GISEL-NEXT: tst x8, #0x3f2835; GISEL-NEXT: str x10, [sp, #240] ; 8-byte Spill2836; GISEL-NEXT: ldr x10, [sp, #32] ; 8-byte Reload2837; GISEL-NEXT: csel x1, xzr, x10, eq2838; GISEL-NEXT: ldr x10, [sp, #24] ; 8-byte Reload2839; GISEL-NEXT: cmp x9, #02840; GISEL-NEXT: orr x1, x10, x12841; GISEL-NEXT: ldr x10, [sp, #216] ; 8-byte Reload2842; GISEL-NEXT: csel x1, x1, xzr, eq2843; GISEL-NEXT: tst x8, #0x3f2844; GISEL-NEXT: csel x19, xzr, x26, eq2845; GISEL-NEXT: cmp x9, #12846; GISEL-NEXT: orr x19, x24, x192847; GISEL-NEXT: csel x1, x19, x1, eq2848; GISEL-NEXT: tst x8, #0x3f2849; GISEL-NEXT: csel x19, xzr, x11, eq2850; GISEL-NEXT: cmp x9, #22851; GISEL-NEXT: orr x19, x12, x192852; GISEL-NEXT: csel x1, x19, x1, eq2853; GISEL-NEXT: tst x8, #0x3f2854; GISEL-NEXT: csel x19, xzr, x30, eq2855; GISEL-NEXT: cmp x9, #32856; GISEL-NEXT: mov x30, x02857; GISEL-NEXT: orr x19, x0, x192858; GISEL-NEXT: mov x0, x132859; GISEL-NEXT: csel x1, x19, x1, eq2860; GISEL-NEXT: tst x8, #0x3f2861; GISEL-NEXT: csel x19, xzr, x23, eq2862; GISEL-NEXT: cmp x9, #42863; GISEL-NEXT: orr x19, x13, x192864; GISEL-NEXT: mov x13, x32865; GISEL-NEXT: csel x1, x19, x1, eq2866; GISEL-NEXT: tst x8, #0x3f2867; GISEL-NEXT: csel x19, xzr, x6, eq2868; GISEL-NEXT: cmp x9, #52869; GISEL-NEXT: orr x19, x7, x192870; GISEL-NEXT: csel x1, x19, x1, eq2871; GISEL-NEXT: tst x8, #0x3f2872; GISEL-NEXT: csel x19, xzr, x5, eq2873; GISEL-NEXT: cmp x9, #62874; GISEL-NEXT: mov x5, x172875; GISEL-NEXT: orr x19, x17, x192876; GISEL-NEXT: mov x17, x222877; GISEL-NEXT: csel x1, x19, x1, eq2878; GISEL-NEXT: tst x8, #0x3f2879; GISEL-NEXT: csel x19, xzr, x3, eq2880; GISEL-NEXT: cmp x9, #72881; GISEL-NEXT: mov x3, x202882; GISEL-NEXT: orr x19, x15, x192883; GISEL-NEXT: csel x1, x19, x1, eq2884; GISEL-NEXT: tst x8, #0x3f2885; GISEL-NEXT: csel x19, xzr, x20, eq2886; GISEL-NEXT: cmp x9, #82887; GISEL-NEXT: mov x20, x142888; GISEL-NEXT: orr x19, x16, x192889; GISEL-NEXT: csel x1, x19, x1, eq2890; GISEL-NEXT: tst x8, #0x3f2891; GISEL-NEXT: csel x19, xzr, x2, eq2892; GISEL-NEXT: cmp x9, #92893; GISEL-NEXT: orr x19, x4, x192894; GISEL-NEXT: csel x1, x19, x1, eq2895; GISEL-NEXT: tst x8, #0x3f2896; GISEL-NEXT: csel x19, xzr, x14, eq2897; GISEL-NEXT: cmp x9, #102898; GISEL-NEXT: mov x14, x132899; GISEL-NEXT: orr x19, x21, x192900; GISEL-NEXT: csel x1, x19, x1, eq2901; GISEL-NEXT: tst x8, #0x3f2902; GISEL-NEXT: csel x19, xzr, x25, eq2903; GISEL-NEXT: cmp x9, #112904; GISEL-NEXT: orr x19, x22, x192905; GISEL-NEXT: mov x22, x302906; GISEL-NEXT: csel x1, x19, x1, eq2907; GISEL-NEXT: cmp x9, #122908; GISEL-NEXT: csel x1, x28, x1, eq2909; GISEL-NEXT: cmp x9, #132910; GISEL-NEXT: csel x1, xzr, x1, eq2911; GISEL-NEXT: cmp x9, #142912; GISEL-NEXT: csel x1, xzr, x1, eq2913; GISEL-NEXT: cmp x9, #152914; GISEL-NEXT: csel x1, xzr, x1, eq2915; GISEL-NEXT: cmp x8, #02916; GISEL-NEXT: csel x10, x10, x1, eq2917; GISEL-NEXT: tst x8, #0x3f2918; GISEL-NEXT: csel x1, xzr, x26, eq2919; GISEL-NEXT: cmp x9, #02920; GISEL-NEXT: str x10, [sp, #216] ; 8-byte Spill2921; GISEL-NEXT: orr x1, x24, x12922; GISEL-NEXT: ldr x10, [sp, #176] ; 8-byte Reload2923; GISEL-NEXT: mov x24, x32924; GISEL-NEXT: csel x1, x1, xzr, eq2925; GISEL-NEXT: tst x8, #0x3f2926; GISEL-NEXT: mov x26, x52927; GISEL-NEXT: csel x19, xzr, x11, eq2928; GISEL-NEXT: cmp x9, #12929; GISEL-NEXT: orr x19, x12, x192930; GISEL-NEXT: csel x1, x19, x1, eq2931; GISEL-NEXT: tst x8, #0x3f2932; GISEL-NEXT: csel x19, xzr, x27, eq2933; GISEL-NEXT: cmp x9, #22934; GISEL-NEXT: orr x19, x30, x192935; GISEL-NEXT: ldr x30, [sp, #312] ; 8-byte Reload2936; GISEL-NEXT: csel x1, x19, x1, eq2937; GISEL-NEXT: tst x8, #0x3f2938; GISEL-NEXT: csel x19, xzr, x23, eq2939; GISEL-NEXT: cmp x9, #32940; GISEL-NEXT: orr x19, x0, x192941; GISEL-NEXT: csel x1, x19, x1, eq2942; GISEL-NEXT: tst x8, #0x3f2943; GISEL-NEXT: csel x19, xzr, x6, eq2944; GISEL-NEXT: cmp x9, #42945; GISEL-NEXT: orr x19, x7, x192946; GISEL-NEXT: csel x1, x19, x1, eq2947; GISEL-NEXT: tst x8, #0x3f2948; GISEL-NEXT: csel x19, xzr, x30, eq2949; GISEL-NEXT: cmp x9, #52950; GISEL-NEXT: orr x19, x5, x192951; GISEL-NEXT: csel x1, x19, x1, eq2952; GISEL-NEXT: tst x8, #0x3f2953; GISEL-NEXT: csel x19, xzr, x13, eq2954; GISEL-NEXT: cmp x9, #62955; GISEL-NEXT: orr x19, x15, x192956; GISEL-NEXT: csel x1, x19, x1, eq2957; GISEL-NEXT: tst x8, #0x3f2958; GISEL-NEXT: csel x19, xzr, x3, eq2959; GISEL-NEXT: cmp x9, #72960; GISEL-NEXT: orr x19, x16, x192961; GISEL-NEXT: csel x1, x19, x1, eq2962; GISEL-NEXT: tst x8, #0x3f2963; GISEL-NEXT: csel x19, xzr, x2, eq2964; GISEL-NEXT: cmp x9, #82965; GISEL-NEXT: orr x19, x4, x192966; GISEL-NEXT: csel x1, x19, x1, eq2967; GISEL-NEXT: tst x8, #0x3f2968; GISEL-NEXT: csel x19, xzr, x20, eq2969; GISEL-NEXT: cmp x9, #92970; GISEL-NEXT: orr x19, x21, x192971; GISEL-NEXT: csel x1, x19, x1, eq2972; GISEL-NEXT: tst x8, #0x3f2973; GISEL-NEXT: csel x19, xzr, x25, eq2974; GISEL-NEXT: cmp x9, #102975; GISEL-NEXT: orr x19, x17, x192976; GISEL-NEXT: csel x1, x19, x1, eq2977; GISEL-NEXT: cmp x9, #112978; GISEL-NEXT: csel x1, x28, x1, eq2979; GISEL-NEXT: cmp x9, #122980; GISEL-NEXT: csel x1, xzr, x1, eq2981; GISEL-NEXT: cmp x9, #132982; GISEL-NEXT: csel x1, xzr, x1, eq2983; GISEL-NEXT: cmp x9, #142984; GISEL-NEXT: csel x1, xzr, x1, eq2985; GISEL-NEXT: cmp x9, #152986; GISEL-NEXT: csel x1, xzr, x1, eq2987; GISEL-NEXT: cmp x8, #02988; GISEL-NEXT: csel x19, x10, x1, eq2989; GISEL-NEXT: tst x8, #0x3f2990; GISEL-NEXT: ldr x10, [sp, #184] ; 8-byte Reload2991; GISEL-NEXT: csel x1, xzr, x11, eq2992; GISEL-NEXT: cmp x9, #02993; GISEL-NEXT: mov x11, x232994; GISEL-NEXT: orr x1, x12, x12995; GISEL-NEXT: mov x12, x02996; GISEL-NEXT: csel x1, x1, xzr, eq2997; GISEL-NEXT: tst x8, #0x3f2998; GISEL-NEXT: csel x3, xzr, x27, eq2999; GISEL-NEXT: cmp x9, #13000; GISEL-NEXT: orr x3, x22, x33001; GISEL-NEXT: csel x1, x3, x1, eq3002; GISEL-NEXT: tst x8, #0x3f3003; GISEL-NEXT: csel x3, xzr, x23, eq3004; GISEL-NEXT: cmp x9, #23005; GISEL-NEXT: mov x23, x173006; GISEL-NEXT: orr x3, x0, x33007; GISEL-NEXT: csel x1, x3, x1, eq3008; GISEL-NEXT: tst x8, #0x3f3009; GISEL-NEXT: csel x3, xzr, x6, eq3010; GISEL-NEXT: cmp x9, #33011; GISEL-NEXT: orr x3, x7, x33012; GISEL-NEXT: csel x1, x3, x1, eq3013; GISEL-NEXT: tst x8, #0x3f3014; GISEL-NEXT: csel x3, xzr, x30, eq3015; GISEL-NEXT: cmp x9, #43016; GISEL-NEXT: orr x3, x26, x33017; GISEL-NEXT: csel x1, x3, x1, eq3018; GISEL-NEXT: tst x8, #0x3f3019; GISEL-NEXT: csel x3, xzr, x13, eq3020; GISEL-NEXT: cmp x9, #53021; GISEL-NEXT: orr x3, x15, x33022; GISEL-NEXT: csel x1, x3, x1, eq3023; GISEL-NEXT: tst x8, #0x3f3024; GISEL-NEXT: csel x3, xzr, x24, eq3025; GISEL-NEXT: cmp x9, #63026; GISEL-NEXT: orr x3, x16, x33027; GISEL-NEXT: csel x1, x3, x1, eq3028; GISEL-NEXT: tst x8, #0x3f3029; GISEL-NEXT: csel x3, xzr, x2, eq3030; GISEL-NEXT: cmp x9, #73031; GISEL-NEXT: orr x3, x4, x33032; GISEL-NEXT: csel x1, x3, x1, eq3033; GISEL-NEXT: tst x8, #0x3f3034; GISEL-NEXT: csel x3, xzr, x20, eq3035; GISEL-NEXT: cmp x9, #83036; GISEL-NEXT: orr x3, x21, x33037; GISEL-NEXT: csel x1, x3, x1, eq3038; GISEL-NEXT: tst x8, #0x3f3039; GISEL-NEXT: csel x3, xzr, x25, eq3040; GISEL-NEXT: cmp x9, #93041; GISEL-NEXT: orr x3, x17, x33042; GISEL-NEXT: csel x1, x3, x1, eq3043; GISEL-NEXT: cmp x9, #103044; GISEL-NEXT: mov x3, x43045; GISEL-NEXT: csel x1, x28, x1, eq3046; GISEL-NEXT: cmp x9, #113047; GISEL-NEXT: csel x1, xzr, x1, eq3048; GISEL-NEXT: cmp x9, #123049; GISEL-NEXT: csel x1, xzr, x1, eq3050; GISEL-NEXT: cmp x9, #133051; GISEL-NEXT: csel x1, xzr, x1, eq3052; GISEL-NEXT: cmp x9, #143053; GISEL-NEXT: csel x1, xzr, x1, eq3054; GISEL-NEXT: cmp x9, #153055; GISEL-NEXT: csel x1, xzr, x1, eq3056; GISEL-NEXT: cmp x8, #03057; GISEL-NEXT: csel x10, x10, x1, eq3058; GISEL-NEXT: tst x8, #0x3f3059; GISEL-NEXT: csel x17, xzr, x27, eq3060; GISEL-NEXT: cmp x9, #03061; GISEL-NEXT: str x10, [sp, #184] ; 8-byte Spill3062; GISEL-NEXT: orr x17, x22, x173063; GISEL-NEXT: ldr x10, [sp, #192] ; 8-byte Reload3064; GISEL-NEXT: csel x17, x17, xzr, eq3065; GISEL-NEXT: tst x8, #0x3f3066; GISEL-NEXT: csel x0, xzr, x11, eq3067; GISEL-NEXT: cmp x9, #13068; GISEL-NEXT: orr x0, x12, x03069; GISEL-NEXT: csel x17, x0, x17, eq3070; GISEL-NEXT: tst x8, #0x3f3071; GISEL-NEXT: csel x0, xzr, x6, eq3072; GISEL-NEXT: cmp x9, #23073; GISEL-NEXT: orr x0, x7, x03074; GISEL-NEXT: csel x17, x0, x17, eq3075; GISEL-NEXT: tst x8, #0x3f3076; GISEL-NEXT: csel x0, xzr, x30, eq3077; GISEL-NEXT: cmp x9, #33078; GISEL-NEXT: orr x0, x26, x03079; GISEL-NEXT: csel x17, x0, x17, eq3080; GISEL-NEXT: tst x8, #0x3f3081; GISEL-NEXT: csel x0, xzr, x13, eq3082; GISEL-NEXT: cmp x9, #43083; GISEL-NEXT: orr x0, x15, x03084; GISEL-NEXT: csel x17, x0, x17, eq3085; GISEL-NEXT: tst x8, #0x3f3086; GISEL-NEXT: csel x0, xzr, x24, eq3087; GISEL-NEXT: cmp x9, #53088; GISEL-NEXT: orr x0, x16, x03089; GISEL-NEXT: csel x17, x0, x17, eq3090; GISEL-NEXT: tst x8, #0x3f3091; GISEL-NEXT: csel x0, xzr, x2, eq3092; GISEL-NEXT: cmp x9, #63093; GISEL-NEXT: orr x0, x4, x03094; GISEL-NEXT: csel x17, x0, x17, eq3095; GISEL-NEXT: tst x8, #0x3f3096; GISEL-NEXT: csel x0, xzr, x20, eq3097; GISEL-NEXT: cmp x9, #73098; GISEL-NEXT: orr x0, x21, x03099; GISEL-NEXT: csel x17, x0, x17, eq3100; GISEL-NEXT: tst x8, #0x3f3101; GISEL-NEXT: csel x0, xzr, x25, eq3102; GISEL-NEXT: cmp x9, #83103; GISEL-NEXT: orr x0, x23, x03104; GISEL-NEXT: csel x17, x0, x17, eq3105; GISEL-NEXT: cmp x9, #93106; GISEL-NEXT: csel x17, x28, x17, eq3107; GISEL-NEXT: cmp x9, #103108; GISEL-NEXT: csel x17, xzr, x17, eq3109; GISEL-NEXT: cmp x9, #113110; GISEL-NEXT: csel x17, xzr, x17, eq3111; GISEL-NEXT: cmp x9, #123112; GISEL-NEXT: csel x17, xzr, x17, eq3113; GISEL-NEXT: cmp x9, #133114; GISEL-NEXT: csel x17, xzr, x17, eq3115; GISEL-NEXT: cmp x9, #143116; GISEL-NEXT: csel x17, xzr, x17, eq3117; GISEL-NEXT: cmp x9, #153118; GISEL-NEXT: csel x17, xzr, x17, eq3119; GISEL-NEXT: cmp x8, #03120; GISEL-NEXT: csel x17, x10, x17, eq3121; GISEL-NEXT: tst x8, #0x3f3122; GISEL-NEXT: ldr x10, [sp, #200] ; 8-byte Reload3123; GISEL-NEXT: csel x13, xzr, x11, eq3124; GISEL-NEXT: cmp x9, #03125; GISEL-NEXT: orr x12, x12, x133126; GISEL-NEXT: csel x12, x12, xzr, eq3127; GISEL-NEXT: tst x8, #0x3f3128; GISEL-NEXT: csel x13, xzr, x6, eq3129; GISEL-NEXT: cmp x9, #13130; GISEL-NEXT: orr x13, x7, x133131; GISEL-NEXT: csel x12, x13, x12, eq3132; GISEL-NEXT: tst x8, #0x3f3133; GISEL-NEXT: csel x13, xzr, x30, eq3134; GISEL-NEXT: cmp x9, #23135; GISEL-NEXT: orr x13, x26, x133136; GISEL-NEXT: csel x12, x13, x12, eq3137; GISEL-NEXT: tst x8, #0x3f3138; GISEL-NEXT: csel x13, xzr, x14, eq3139; GISEL-NEXT: cmp x9, #33140; GISEL-NEXT: orr x13, x15, x133141; GISEL-NEXT: csel x12, x13, x12, eq3142; GISEL-NEXT: tst x8, #0x3f3143; GISEL-NEXT: csel x13, xzr, x24, eq3144; GISEL-NEXT: cmp x9, #43145; GISEL-NEXT: orr x13, x16, x133146; GISEL-NEXT: csel x12, x13, x12, eq3147; GISEL-NEXT: tst x8, #0x3f3148; GISEL-NEXT: csel x13, xzr, x2, eq3149; GISEL-NEXT: cmp x9, #53150; GISEL-NEXT: orr x13, x4, x133151; GISEL-NEXT: csel x12, x13, x12, eq3152; GISEL-NEXT: tst x8, #0x3f3153; GISEL-NEXT: csel x13, xzr, x20, eq3154; GISEL-NEXT: cmp x9, #63155; GISEL-NEXT: orr x13, x21, x133156; GISEL-NEXT: csel x12, x13, x12, eq3157; GISEL-NEXT: tst x8, #0x3f3158; GISEL-NEXT: csel x13, xzr, x25, eq3159; GISEL-NEXT: cmp x9, #73160; GISEL-NEXT: orr x13, x23, x133161; GISEL-NEXT: csel x12, x13, x12, eq3162; GISEL-NEXT: cmp x9, #83163; GISEL-NEXT: csel x12, x28, x12, eq3164; GISEL-NEXT: cmp x9, #93165; GISEL-NEXT: csel x12, xzr, x12, eq3166; GISEL-NEXT: cmp x9, #103167; GISEL-NEXT: csel x12, xzr, x12, eq3168; GISEL-NEXT: cmp x9, #113169; GISEL-NEXT: csel x12, xzr, x12, eq3170; GISEL-NEXT: cmp x9, #123171; GISEL-NEXT: csel x12, xzr, x12, eq3172; GISEL-NEXT: cmp x9, #133173; GISEL-NEXT: csel x12, xzr, x12, eq3174; GISEL-NEXT: cmp x9, #143175; GISEL-NEXT: csel x12, xzr, x12, eq3176; GISEL-NEXT: cmp x9, #153177; GISEL-NEXT: csel x12, xzr, x12, eq3178; GISEL-NEXT: cmp x8, #03179; GISEL-NEXT: csel x12, x10, x12, eq3180; GISEL-NEXT: tst x8, #0x3f3181; GISEL-NEXT: csel x11, xzr, x6, eq3182; GISEL-NEXT: cmp x9, #03183; GISEL-NEXT: orr x10, x7, x113184; GISEL-NEXT: csel x10, x10, xzr, eq3185; GISEL-NEXT: tst x8, #0x3f3186; GISEL-NEXT: csel x11, xzr, x30, eq3187; GISEL-NEXT: cmp x9, #13188; GISEL-NEXT: orr x11, x26, x113189; GISEL-NEXT: csel x10, x11, x10, eq3190; GISEL-NEXT: tst x8, #0x3f3191; GISEL-NEXT: csel x11, xzr, x14, eq3192; GISEL-NEXT: cmp x9, #23193; GISEL-NEXT: orr x11, x15, x113194; GISEL-NEXT: csel x10, x11, x10, eq3195; GISEL-NEXT: tst x8, #0x3f3196; GISEL-NEXT: csel x11, xzr, x24, eq3197; GISEL-NEXT: cmp x9, #33198; GISEL-NEXT: orr x11, x16, x113199; GISEL-NEXT: csel x10, x11, x10, eq3200; GISEL-NEXT: tst x8, #0x3f3201; GISEL-NEXT: csel x11, xzr, x2, eq3202; GISEL-NEXT: cmp x9, #43203; GISEL-NEXT: orr x11, x4, x113204; GISEL-NEXT: ldr x4, [sp, #168] ; 8-byte Reload3205; GISEL-NEXT: csel x10, x11, x10, eq3206; GISEL-NEXT: tst x8, #0x3f3207; GISEL-NEXT: csel x11, xzr, x20, eq3208; GISEL-NEXT: cmp x9, #53209; GISEL-NEXT: orr x11, x21, x113210; GISEL-NEXT: csel x10, x11, x10, eq3211; GISEL-NEXT: tst x8, #0x3f3212; GISEL-NEXT: csel x11, xzr, x25, eq3213; GISEL-NEXT: cmp x9, #63214; GISEL-NEXT: orr x11, x23, x113215; GISEL-NEXT: csel x10, x11, x10, eq3216; GISEL-NEXT: cmp x9, #73217; GISEL-NEXT: ldr x11, [sp, #208] ; 8-byte Reload3218; GISEL-NEXT: csel x10, x28, x10, eq3219; GISEL-NEXT: cmp x9, #83220; GISEL-NEXT: csel x10, xzr, x10, eq3221; GISEL-NEXT: cmp x9, #93222; GISEL-NEXT: csel x10, xzr, x10, eq3223; GISEL-NEXT: cmp x9, #103224; GISEL-NEXT: csel x10, xzr, x10, eq3225; GISEL-NEXT: cmp x9, #113226; GISEL-NEXT: csel x10, xzr, x10, eq3227; GISEL-NEXT: cmp x9, #123228; GISEL-NEXT: csel x10, xzr, x10, eq3229; GISEL-NEXT: cmp x9, #133230; GISEL-NEXT: csel x10, xzr, x10, eq3231; GISEL-NEXT: cmp x9, #143232; GISEL-NEXT: csel x10, xzr, x10, eq3233; GISEL-NEXT: cmp x9, #153234; GISEL-NEXT: csel x10, xzr, x10, eq3235; GISEL-NEXT: cmp x8, #03236; GISEL-NEXT: csel x10, x11, x10, eq3237; GISEL-NEXT: tst x8, #0x3f3238; GISEL-NEXT: csel x11, xzr, x30, eq3239; GISEL-NEXT: cmp x9, #03240; GISEL-NEXT: orr x11, x26, x113241; GISEL-NEXT: ldp x29, x30, [sp, #400] ; 16-byte Folded Reload3242; GISEL-NEXT: csel x11, x11, xzr, eq3243; GISEL-NEXT: tst x8, #0x3f3244; GISEL-NEXT: csel x13, xzr, x14, eq3245; GISEL-NEXT: cmp x9, #13246; GISEL-NEXT: orr x13, x15, x133247; GISEL-NEXT: csel x11, x13, x11, eq3248; GISEL-NEXT: tst x8, #0x3f3249; GISEL-NEXT: csel x13, xzr, x24, eq3250; GISEL-NEXT: cmp x9, #23251; GISEL-NEXT: orr x13, x16, x133252; GISEL-NEXT: csel x11, x13, x11, eq3253; GISEL-NEXT: tst x8, #0x3f3254; GISEL-NEXT: csel x13, xzr, x2, eq3255; GISEL-NEXT: cmp x9, #33256; GISEL-NEXT: orr x13, x3, x133257; GISEL-NEXT: csel x11, x13, x11, eq3258; GISEL-NEXT: tst x8, #0x3f3259; GISEL-NEXT: csel x13, xzr, x20, eq3260; GISEL-NEXT: cmp x9, #43261; GISEL-NEXT: orr x13, x21, x133262; GISEL-NEXT: csel x11, x13, x11, eq3263; GISEL-NEXT: tst x8, #0x3f3264; GISEL-NEXT: csel x13, xzr, x25, eq3265; GISEL-NEXT: cmp x9, #53266; GISEL-NEXT: orr x13, x23, x133267; GISEL-NEXT: csel x11, x13, x11, eq3268; GISEL-NEXT: cmp x9, #63269; GISEL-NEXT: ldr x13, [sp, #224] ; 8-byte Reload3270; GISEL-NEXT: csel x11, x28, x11, eq3271; GISEL-NEXT: cmp x9, #73272; GISEL-NEXT: csel x11, xzr, x11, eq3273; GISEL-NEXT: cmp x9, #83274; GISEL-NEXT: csel x11, xzr, x11, eq3275; GISEL-NEXT: cmp x9, #93276; GISEL-NEXT: csel x11, xzr, x11, eq3277; GISEL-NEXT: cmp x9, #103278; GISEL-NEXT: csel x11, xzr, x11, eq3279; GISEL-NEXT: cmp x9, #113280; GISEL-NEXT: csel x11, xzr, x11, eq3281; GISEL-NEXT: cmp x9, #123282; GISEL-NEXT: csel x11, xzr, x11, eq3283; GISEL-NEXT: cmp x9, #133284; GISEL-NEXT: csel x11, xzr, x11, eq3285; GISEL-NEXT: cmp x9, #143286; GISEL-NEXT: csel x11, xzr, x11, eq3287; GISEL-NEXT: cmp x9, #153288; GISEL-NEXT: csel x11, xzr, x11, eq3289; GISEL-NEXT: cmp x8, #03290; GISEL-NEXT: csel x11, x13, x11, eq3291; GISEL-NEXT: tst x8, #0x3f3292; GISEL-NEXT: csel x13, xzr, x14, eq3293; GISEL-NEXT: cmp x9, #03294; GISEL-NEXT: orr x13, x15, x133295; GISEL-NEXT: csel x13, x13, xzr, eq3296; GISEL-NEXT: tst x8, #0x3f3297; GISEL-NEXT: csel x0, xzr, x24, eq3298; GISEL-NEXT: cmp x9, #13299; GISEL-NEXT: orr x0, x16, x03300; GISEL-NEXT: csel x13, x0, x13, eq3301; GISEL-NEXT: tst x8, #0x3f3302; GISEL-NEXT: csel x0, xzr, x2, eq3303; GISEL-NEXT: cmp x9, #23304; GISEL-NEXT: orr x0, x3, x03305; GISEL-NEXT: csel x13, x0, x13, eq3306; GISEL-NEXT: tst x8, #0x3f3307; GISEL-NEXT: csel x0, xzr, x20, eq3308; GISEL-NEXT: cmp x9, #33309; GISEL-NEXT: orr x0, x21, x03310; GISEL-NEXT: csel x13, x0, x13, eq3311; GISEL-NEXT: tst x8, #0x3f3312; GISEL-NEXT: csel x0, xzr, x25, eq3313; GISEL-NEXT: cmp x9, #43314; GISEL-NEXT: orr x0, x23, x03315; GISEL-NEXT: csel x13, x0, x13, eq3316; GISEL-NEXT: cmp x9, #53317; GISEL-NEXT: ldr x0, [sp, #232] ; 8-byte Reload3318; GISEL-NEXT: csel x13, x28, x13, eq3319; GISEL-NEXT: cmp x9, #63320; GISEL-NEXT: csel x13, xzr, x13, eq3321; GISEL-NEXT: cmp x9, #73322; GISEL-NEXT: csel x13, xzr, x13, eq3323; GISEL-NEXT: cmp x9, #83324; GISEL-NEXT: csel x13, xzr, x13, eq3325; GISEL-NEXT: cmp x9, #93326; GISEL-NEXT: csel x13, xzr, x13, eq3327; GISEL-NEXT: cmp x9, #103328; GISEL-NEXT: csel x13, xzr, x13, eq3329; GISEL-NEXT: cmp x9, #113330; GISEL-NEXT: csel x13, xzr, x13, eq3331; GISEL-NEXT: cmp x9, #123332; GISEL-NEXT: csel x13, xzr, x13, eq3333; GISEL-NEXT: cmp x9, #133334; GISEL-NEXT: csel x13, xzr, x13, eq3335; GISEL-NEXT: cmp x9, #143336; GISEL-NEXT: csel x13, xzr, x13, eq3337; GISEL-NEXT: cmp x9, #153338; GISEL-NEXT: csel x13, xzr, x13, eq3339; GISEL-NEXT: cmp x8, #03340; GISEL-NEXT: csel x13, x0, x13, eq3341; GISEL-NEXT: tst x8, #0x3f3342; GISEL-NEXT: csel x0, xzr, x24, eq3343; GISEL-NEXT: cmp x9, #03344; GISEL-NEXT: orr x0, x16, x03345; GISEL-NEXT: ldr x16, [sp, #280] ; 8-byte Reload3346; GISEL-NEXT: csel x0, x0, xzr, eq3347; GISEL-NEXT: tst x8, #0x3f3348; GISEL-NEXT: csel x1, xzr, x2, eq3349; GISEL-NEXT: cmp x9, #13350; GISEL-NEXT: orr x1, x3, x13351; GISEL-NEXT: csel x0, x1, x0, eq3352; GISEL-NEXT: tst x8, #0x3f3353; GISEL-NEXT: csel x1, xzr, x20, eq3354; GISEL-NEXT: cmp x9, #23355; GISEL-NEXT: orr x1, x21, x13356; GISEL-NEXT: csel x0, x1, x0, eq3357; GISEL-NEXT: tst x8, #0x3f3358; GISEL-NEXT: csel x1, xzr, x25, eq3359; GISEL-NEXT: cmp x9, #33360; GISEL-NEXT: orr x1, x23, x13361; GISEL-NEXT: csel x0, x1, x0, eq3362; GISEL-NEXT: cmp x9, #43363; GISEL-NEXT: ldr x1, [sp, #248] ; 8-byte Reload3364; GISEL-NEXT: csel x0, x28, x0, eq3365; GISEL-NEXT: cmp x9, #53366; GISEL-NEXT: csel x0, xzr, x0, eq3367; GISEL-NEXT: cmp x9, #63368; GISEL-NEXT: csel x0, xzr, x0, eq3369; GISEL-NEXT: cmp x9, #73370; GISEL-NEXT: csel x0, xzr, x0, eq3371; GISEL-NEXT: cmp x9, #83372; GISEL-NEXT: csel x0, xzr, x0, eq3373; GISEL-NEXT: cmp x9, #93374; GISEL-NEXT: csel x0, xzr, x0, eq3375; GISEL-NEXT: cmp x9, #103376; GISEL-NEXT: csel x0, xzr, x0, eq3377; GISEL-NEXT: cmp x9, #113378; GISEL-NEXT: csel x0, xzr, x0, eq3379; GISEL-NEXT: cmp x9, #123380; GISEL-NEXT: csel x0, xzr, x0, eq3381; GISEL-NEXT: cmp x9, #133382; GISEL-NEXT: csel x0, xzr, x0, eq3383; GISEL-NEXT: cmp x9, #143384; GISEL-NEXT: csel x0, xzr, x0, eq3385; GISEL-NEXT: cmp x9, #153386; GISEL-NEXT: csel x0, xzr, x0, eq3387; GISEL-NEXT: cmp x8, #03388; GISEL-NEXT: csel x0, x1, x0, eq3389; GISEL-NEXT: tst x8, #0x3f3390; GISEL-NEXT: csel x1, xzr, x2, eq3391; GISEL-NEXT: cmp x9, #03392; GISEL-NEXT: orr x1, x3, x13393; GISEL-NEXT: csel x1, x1, xzr, eq3394; GISEL-NEXT: tst x8, #0x3f3395; GISEL-NEXT: csel x3, xzr, x20, eq3396; GISEL-NEXT: cmp x9, #13397; GISEL-NEXT: orr x3, x21, x33398; GISEL-NEXT: csel x1, x3, x1, eq3399; GISEL-NEXT: tst x8, #0x3f3400; GISEL-NEXT: csel x3, xzr, x25, eq3401; GISEL-NEXT: cmp x9, #23402; GISEL-NEXT: orr x3, x23, x33403; GISEL-NEXT: csel x1, x3, x1, eq3404; GISEL-NEXT: cmp x9, #33405; GISEL-NEXT: ldr x3, [sp, #256] ; 8-byte Reload3406; GISEL-NEXT: csel x1, x28, x1, eq3407; GISEL-NEXT: cmp x9, #43408; GISEL-NEXT: csel x1, xzr, x1, eq3409; GISEL-NEXT: cmp x9, #53410; GISEL-NEXT: csel x1, xzr, x1, eq3411; GISEL-NEXT: cmp x9, #63412; GISEL-NEXT: csel x1, xzr, x1, eq3413; GISEL-NEXT: cmp x9, #73414; GISEL-NEXT: csel x1, xzr, x1, eq3415; GISEL-NEXT: cmp x9, #83416; GISEL-NEXT: csel x1, xzr, x1, eq3417; GISEL-NEXT: cmp x9, #93418; GISEL-NEXT: csel x1, xzr, x1, eq3419; GISEL-NEXT: cmp x9, #103420; GISEL-NEXT: csel x1, xzr, x1, eq3421; GISEL-NEXT: cmp x9, #113422; GISEL-NEXT: csel x1, xzr, x1, eq3423; GISEL-NEXT: cmp x9, #123424; GISEL-NEXT: csel x1, xzr, x1, eq3425; GISEL-NEXT: cmp x9, #133426; GISEL-NEXT: csel x1, xzr, x1, eq3427; GISEL-NEXT: cmp x9, #143428; GISEL-NEXT: csel x1, xzr, x1, eq3429; GISEL-NEXT: cmp x9, #153430; GISEL-NEXT: csel x1, xzr, x1, eq3431; GISEL-NEXT: cmp x8, #03432; GISEL-NEXT: csel x3, x3, x1, eq3433; GISEL-NEXT: tst x8, #0x3f3434; GISEL-NEXT: csel x1, xzr, x20, eq3435; GISEL-NEXT: cmp x9, #03436; GISEL-NEXT: orr x1, x21, x13437; GISEL-NEXT: ldp x22, x21, [sp, #368] ; 16-byte Folded Reload3438; GISEL-NEXT: csel x1, x1, xzr, eq3439; GISEL-NEXT: tst x8, #0x3f3440; GISEL-NEXT: csel x2, xzr, x25, eq3441; GISEL-NEXT: cmp x9, #13442; GISEL-NEXT: orr x2, x23, x23443; GISEL-NEXT: csel x1, x2, x1, eq3444; GISEL-NEXT: cmp x9, #23445; GISEL-NEXT: ldr x2, [sp, #272] ; 8-byte Reload3446; GISEL-NEXT: csel x1, x28, x1, eq3447; GISEL-NEXT: cmp x9, #33448; GISEL-NEXT: csel x1, xzr, x1, eq3449; GISEL-NEXT: cmp x9, #43450; GISEL-NEXT: csel x1, xzr, x1, eq3451; GISEL-NEXT: cmp x9, #53452; GISEL-NEXT: csel x1, xzr, x1, eq3453; GISEL-NEXT: cmp x9, #63454; GISEL-NEXT: csel x1, xzr, x1, eq3455; GISEL-NEXT: cmp x9, #73456; GISEL-NEXT: csel x1, xzr, x1, eq3457; GISEL-NEXT: cmp x9, #83458; GISEL-NEXT: csel x1, xzr, x1, eq3459; GISEL-NEXT: cmp x9, #93460; GISEL-NEXT: csel x1, xzr, x1, eq3461; GISEL-NEXT: cmp x9, #103462; GISEL-NEXT: csel x1, xzr, x1, eq3463; GISEL-NEXT: cmp x9, #113464; GISEL-NEXT: csel x1, xzr, x1, eq3465; GISEL-NEXT: cmp x9, #123466; GISEL-NEXT: csel x1, xzr, x1, eq3467; GISEL-NEXT: cmp x9, #133468; GISEL-NEXT: csel x1, xzr, x1, eq3469; GISEL-NEXT: cmp x9, #143470; GISEL-NEXT: csel x1, xzr, x1, eq3471; GISEL-NEXT: cmp x9, #153472; GISEL-NEXT: csel x1, xzr, x1, eq3473; GISEL-NEXT: cmp x8, #03474; GISEL-NEXT: csel x2, x2, x1, eq3475; GISEL-NEXT: tst x8, #0x3f3476; GISEL-NEXT: ldr x1, [sp, #264] ; 8-byte Reload3477; GISEL-NEXT: csel x15, xzr, x25, eq3478; GISEL-NEXT: cmp x9, #03479; GISEL-NEXT: orr x15, x23, x153480; GISEL-NEXT: ldp x24, x23, [sp, #352] ; 16-byte Folded Reload3481; GISEL-NEXT: csel x15, x15, xzr, eq3482; GISEL-NEXT: cmp x9, #13483; GISEL-NEXT: csel x15, x28, x15, eq3484; GISEL-NEXT: cmp x9, #23485; GISEL-NEXT: csel x15, xzr, x15, eq3486; GISEL-NEXT: cmp x9, #33487; GISEL-NEXT: csel x15, xzr, x15, eq3488; GISEL-NEXT: cmp x9, #43489; GISEL-NEXT: csel x15, xzr, x15, eq3490; GISEL-NEXT: cmp x9, #53491; GISEL-NEXT: csel x15, xzr, x15, eq3492; GISEL-NEXT: cmp x9, #63493; GISEL-NEXT: csel x15, xzr, x15, eq3494; GISEL-NEXT: cmp x9, #73495; GISEL-NEXT: csel x15, xzr, x15, eq3496; GISEL-NEXT: cmp x9, #83497; GISEL-NEXT: csel x15, xzr, x15, eq3498; GISEL-NEXT: cmp x9, #93499; GISEL-NEXT: csel x15, xzr, x15, eq3500; GISEL-NEXT: cmp x9, #103501; GISEL-NEXT: csel x15, xzr, x15, eq3502; GISEL-NEXT: cmp x9, #113503; GISEL-NEXT: csel x15, xzr, x15, eq3504; GISEL-NEXT: cmp x9, #123505; GISEL-NEXT: csel x15, xzr, x15, eq3506; GISEL-NEXT: cmp x9, #133507; GISEL-NEXT: csel x15, xzr, x15, eq3508; GISEL-NEXT: cmp x9, #143509; GISEL-NEXT: csel x15, xzr, x15, eq3510; GISEL-NEXT: cmp x9, #153511; GISEL-NEXT: csel x15, xzr, x15, eq3512; GISEL-NEXT: cmp x8, #03513; GISEL-NEXT: csel x15, x16, x15, eq3514; GISEL-NEXT: cmp x9, #03515; GISEL-NEXT: ldr x16, [sp, #296] ; 8-byte Reload3516; GISEL-NEXT: csel x14, x28, xzr, eq3517; GISEL-NEXT: cmp x9, #13518; GISEL-NEXT: csel x14, xzr, x14, eq3519; GISEL-NEXT: cmp x9, #23520; GISEL-NEXT: stp x17, x12, [x16, #48]3521; GISEL-NEXT: csel x14, xzr, x14, eq3522; GISEL-NEXT: cmp x9, #33523; GISEL-NEXT: stp x10, x11, [x16, #64]3524; GISEL-NEXT: csel x14, xzr, x14, eq3525; GISEL-NEXT: cmp x9, #43526; GISEL-NEXT: stp x4, x1, [x16]3527; GISEL-NEXT: csel x14, xzr, x14, eq3528; GISEL-NEXT: cmp x9, #53529; GISEL-NEXT: ldr x4, [sp, #240] ; 8-byte Reload3530; GISEL-NEXT: csel x14, xzr, x14, eq3531; GISEL-NEXT: cmp x9, #63532; GISEL-NEXT: ldr x1, [sp, #216] ; 8-byte Reload3533; GISEL-NEXT: csel x14, xzr, x14, eq3534; GISEL-NEXT: cmp x9, #73535; GISEL-NEXT: stp x13, x0, [x16, #80]3536; GISEL-NEXT: csel x14, xzr, x14, eq3537; GISEL-NEXT: cmp x9, #83538; GISEL-NEXT: stp x4, x1, [x16, #16]3539; GISEL-NEXT: csel x14, xzr, x14, eq3540; GISEL-NEXT: cmp x9, #93541; GISEL-NEXT: ldr x1, [sp, #184] ; 8-byte Reload3542; GISEL-NEXT: csel x12, xzr, x14, eq3543; GISEL-NEXT: cmp x9, #103544; GISEL-NEXT: stp x3, x2, [x16, #96]3545; GISEL-NEXT: csel x10, xzr, x12, eq3546; GISEL-NEXT: cmp x9, #113547; GISEL-NEXT: stp x19, x1, [x16, #32]3548; GISEL-NEXT: csel x10, xzr, x10, eq3549; GISEL-NEXT: cmp x9, #123550; GISEL-NEXT: csel x10, xzr, x10, eq3551; GISEL-NEXT: cmp x9, #133552; GISEL-NEXT: csel x10, xzr, x10, eq3553; GISEL-NEXT: cmp x9, #143554; GISEL-NEXT: csel x10, xzr, x10, eq3555; GISEL-NEXT: cmp x9, #153556; GISEL-NEXT: csel x9, xzr, x10, eq3557; GISEL-NEXT: cmp x8, #03558; GISEL-NEXT: ldr x8, [sp, #288] ; 8-byte Reload3559; GISEL-NEXT: ldp x20, x19, [sp, #384] ; 16-byte Folded Reload3560; GISEL-NEXT: ldp x26, x25, [sp, #336] ; 16-byte Folded Reload3561; GISEL-NEXT: csel x8, x8, x9, eq3562; GISEL-NEXT: ldp x28, x27, [sp, #320] ; 16-byte Folded Reload3563; GISEL-NEXT: stp x15, x8, [x16, #112]3564; GISEL-NEXT: add sp, sp, #4163565; GISEL-NEXT: ret3566entry:3567 %input_val = load i1024, ptr %input, align 1283568 %shift_ext = zext i32 %shift to i10243569 %shifted = lshr i1024 %input_val, %shift_ext3570 store i1024 %shifted, ptr %result, align 1283571 ret void3572}3573 3574define void @test_ashr_i1024(ptr %result, ptr %input, i32 %shift) {3575; SDAG-LABEL: test_ashr_i1024:3576; SDAG: ; %bb.0: ; %entry3577; SDAG-NEXT: sub sp, sp, #3363578; SDAG-NEXT: stp x28, x27, [sp, #256] ; 16-byte Folded Spill3579; SDAG-NEXT: stp x26, x25, [sp, #272] ; 16-byte Folded Spill3580; SDAG-NEXT: stp x24, x23, [sp, #288] ; 16-byte Folded Spill3581; SDAG-NEXT: stp x22, x21, [sp, #304] ; 16-byte Folded Spill3582; SDAG-NEXT: stp x20, x19, [sp, #320] ; 16-byte Folded Spill3583; SDAG-NEXT: .cfi_def_cfa_offset 3363584; SDAG-NEXT: .cfi_offset w19, -83585; SDAG-NEXT: .cfi_offset w20, -163586; SDAG-NEXT: .cfi_offset w21, -243587; SDAG-NEXT: .cfi_offset w22, -323588; SDAG-NEXT: .cfi_offset w23, -403589; SDAG-NEXT: .cfi_offset w24, -483590; SDAG-NEXT: .cfi_offset w25, -563591; SDAG-NEXT: .cfi_offset w26, -643592; SDAG-NEXT: .cfi_offset w27, -723593; SDAG-NEXT: .cfi_offset w28, -803594; SDAG-NEXT: ldp x8, x9, [x1, #112]3595; SDAG-NEXT: mov x11, sp3596; SDAG-NEXT: ldp q0, q1, [x1]3597; SDAG-NEXT: ldr q6, [x1, #96]3598; SDAG-NEXT: ldp q2, q3, [x1, #32]3599; SDAG-NEXT: ldp q4, q5, [x1, #64]3600; SDAG-NEXT: mvn w1, w23601; SDAG-NEXT: stp x8, x9, [sp, #112]3602; SDAG-NEXT: mov w8, w23603; SDAG-NEXT: asr x9, x9, #633604; SDAG-NEXT: lsr x10, x8, #33605; SDAG-NEXT: stp q1, q2, [sp, #16]3606; SDAG-NEXT: and x14, x8, #0x3f3607; SDAG-NEXT: stp q3, q4, [sp, #48]3608; SDAG-NEXT: eor x15, x14, #0x3f3609; SDAG-NEXT: and x10, x10, #0x783610; SDAG-NEXT: stp q5, q6, [sp, #80]3611; SDAG-NEXT: str q0, [sp]3612; SDAG-NEXT: add x10, x11, x103613; SDAG-NEXT: stp x9, x9, [sp, #240]3614; SDAG-NEXT: stp x9, x9, [sp, #224]3615; SDAG-NEXT: stp x9, x9, [sp, #208]3616; SDAG-NEXT: stp x9, x9, [sp, #192]3617; SDAG-NEXT: stp x9, x9, [sp, #176]3618; SDAG-NEXT: stp x9, x9, [sp, #160]3619; SDAG-NEXT: stp x9, x9, [sp, #144]3620; SDAG-NEXT: stp x9, x9, [sp, #128]3621; SDAG-NEXT: ldp x11, x9, [x10, #16]3622; SDAG-NEXT: ldr x16, [x10, #32]3623; SDAG-NEXT: ldp x12, x13, [x10, #40]3624; SDAG-NEXT: ldr x3, [x10, #56]3625; SDAG-NEXT: ldp x4, x6, [x10, #64]3626; SDAG-NEXT: lsl x2, x16, #13627; SDAG-NEXT: lsl x17, x11, #13628; SDAG-NEXT: ldp x24, x26, [x10, #112]3629; SDAG-NEXT: lsl x5, x13, #13630; SDAG-NEXT: lsr x13, x13, x83631; SDAG-NEXT: lsr x11, x11, x83632; SDAG-NEXT: lsl x14, x17, x13633; SDAG-NEXT: lsl x7, x6, #13634; SDAG-NEXT: lsl x17, x2, x13635; SDAG-NEXT: lsl x2, x5, x13636; SDAG-NEXT: ldp x5, x22, [x10, #80]3637; SDAG-NEXT: lsr x19, x4, x83638; SDAG-NEXT: lsl x7, x7, x153639; SDAG-NEXT: lsl x21, x4, #13640; SDAG-NEXT: lsr x6, x6, x83641; SDAG-NEXT: lsl x27, x24, #13642; SDAG-NEXT: lsr x24, x24, x83643; SDAG-NEXT: lsl x23, x5, #13644; SDAG-NEXT: orr x4, x7, x193645; SDAG-NEXT: lsr x25, x22, x83646; SDAG-NEXT: ldp x20, x7, [x10, #96]3647; SDAG-NEXT: lsl x21, x21, x13648; SDAG-NEXT: lsl x23, x23, x13649; SDAG-NEXT: lsl x22, x22, #13650; SDAG-NEXT: lsr x5, x5, x83651; SDAG-NEXT: lsr x16, x16, x83652; SDAG-NEXT: lsl x19, x20, #13653; SDAG-NEXT: orr x6, x6, x233654; SDAG-NEXT: lsl x23, x7, #13655; SDAG-NEXT: lsr x20, x20, x83656; SDAG-NEXT: lsr x7, x7, x83657; SDAG-NEXT: lsl x22, x22, x153658; SDAG-NEXT: lsl x19, x19, x13659; SDAG-NEXT: lsl x1, x27, x13660; SDAG-NEXT: lsl x23, x23, x153661; SDAG-NEXT: orr x5, x22, x53662; SDAG-NEXT: ldp x28, x27, [sp, #256] ; 16-byte Folded Reload3663; SDAG-NEXT: orr x19, x25, x193664; SDAG-NEXT: lsl x25, x26, #13665; SDAG-NEXT: orr x20, x23, x203666; SDAG-NEXT: orr x1, x7, x13667; SDAG-NEXT: ldp x23, x10, [x10]3668; SDAG-NEXT: stp x20, x1, [x0, #96]3669; SDAG-NEXT: lsl x20, x3, #13670; SDAG-NEXT: lsl x25, x25, x153671; SDAG-NEXT: asr x26, x26, x83672; SDAG-NEXT: stp x5, x19, [x0, #80]3673; SDAG-NEXT: lsr x3, x3, x83674; SDAG-NEXT: lsl x19, x20, x153675; SDAG-NEXT: orr x7, x25, x243676; SDAG-NEXT: lsl x1, x9, #13677; SDAG-NEXT: stp x7, x26, [x0, #112]3678; SDAG-NEXT: lsl x7, x10, #13679; SDAG-NEXT: orr x3, x3, x213680; SDAG-NEXT: orr x13, x19, x133681; SDAG-NEXT: lsl x5, x12, #13682; SDAG-NEXT: lsr x9, x9, x83683; SDAG-NEXT: stp x13, x3, [x0, #48]3684; SDAG-NEXT: lsl x13, x1, x153685; SDAG-NEXT: lsr x23, x23, x83686; SDAG-NEXT: lsr x12, x12, x83687; SDAG-NEXT: lsr x8, x10, x83688; SDAG-NEXT: lsl x10, x7, x153689; SDAG-NEXT: stp x4, x6, [x0, #64]3690; SDAG-NEXT: lsl x4, x5, x153691; SDAG-NEXT: orr x9, x9, x173692; SDAG-NEXT: orr x11, x13, x113693; SDAG-NEXT: ldp x20, x19, [sp, #320] ; 16-byte Folded Reload3694; SDAG-NEXT: stp x11, x9, [x0, #16]3695; SDAG-NEXT: orr x9, x10, x233696; SDAG-NEXT: orr x12, x12, x23697; SDAG-NEXT: ldp x22, x21, [sp, #304] ; 16-byte Folded Reload3698; SDAG-NEXT: orr x16, x4, x163699; SDAG-NEXT: ldp x24, x23, [sp, #288] ; 16-byte Folded Reload3700; SDAG-NEXT: orr x8, x8, x143701; SDAG-NEXT: ldp x26, x25, [sp, #272] ; 16-byte Folded Reload3702; SDAG-NEXT: stp x16, x12, [x0, #32]3703; SDAG-NEXT: stp x9, x8, [x0]3704; SDAG-NEXT: add sp, sp, #3363705; SDAG-NEXT: ret3706;3707; GISEL-LABEL: test_ashr_i1024:3708; GISEL: ; %bb.0: ; %entry3709; GISEL-NEXT: sub sp, sp, #4323710; GISEL-NEXT: stp x28, x27, [sp, #336] ; 16-byte Folded Spill3711; GISEL-NEXT: stp x26, x25, [sp, #352] ; 16-byte Folded Spill3712; GISEL-NEXT: stp x24, x23, [sp, #368] ; 16-byte Folded Spill3713; GISEL-NEXT: stp x22, x21, [sp, #384] ; 16-byte Folded Spill3714; GISEL-NEXT: stp x20, x19, [sp, #400] ; 16-byte Folded Spill3715; GISEL-NEXT: stp x29, x30, [sp, #416] ; 16-byte Folded Spill3716; GISEL-NEXT: .cfi_def_cfa_offset 4323717; GISEL-NEXT: .cfi_offset w30, -83718; GISEL-NEXT: .cfi_offset w29, -163719; GISEL-NEXT: .cfi_offset w19, -243720; GISEL-NEXT: .cfi_offset w20, -323721; GISEL-NEXT: .cfi_offset w21, -403722; GISEL-NEXT: .cfi_offset w22, -483723; GISEL-NEXT: .cfi_offset w23, -563724; GISEL-NEXT: .cfi_offset w24, -643725; GISEL-NEXT: .cfi_offset w25, -723726; GISEL-NEXT: .cfi_offset w26, -803727; GISEL-NEXT: .cfi_offset w27, -883728; GISEL-NEXT: .cfi_offset w28, -963729; GISEL-NEXT: str x0, [sp, #264] ; 8-byte Spill3730; GISEL-NEXT: mov w8, w23731; GISEL-NEXT: mov w9, #64 ; =0x403732; GISEL-NEXT: ldp x7, x0, [x1]3733; GISEL-NEXT: and x15, x8, #0x3f3734; GISEL-NEXT: sub x14, x9, x153735; GISEL-NEXT: ldr x28, [x1, #120]3736; GISEL-NEXT: lsr x10, x8, #63737; GISEL-NEXT: ldp x17, x16, [x1, #16]3738; GISEL-NEXT: tst x8, #0x3f3739; GISEL-NEXT: lsl x9, x0, x143740; GISEL-NEXT: lsr x12, x7, x153741; GISEL-NEXT: asr x11, x28, #633742; GISEL-NEXT: lsr x20, x0, x153743; GISEL-NEXT: str x0, [sp, #232] ; 8-byte Spill3744; GISEL-NEXT: lsl x27, x28, x143745; GISEL-NEXT: csel x9, xzr, x9, eq3746; GISEL-NEXT: lsl x19, x17, x143747; GISEL-NEXT: cmp x10, #03748; GISEL-NEXT: orr x9, x12, x93749; GISEL-NEXT: str x17, [sp, #208] ; 8-byte Spill3750; GISEL-NEXT: lsr x2, x17, x153751; GISEL-NEXT: csel x9, x9, x11, eq3752; GISEL-NEXT: tst x8, #0x3f3753; GISEL-NEXT: lsl x30, x16, x143754; GISEL-NEXT: csel x12, xzr, x19, eq3755; GISEL-NEXT: cmp x10, #13756; GISEL-NEXT: lsr x25, x16, x153757; GISEL-NEXT: orr x12, x20, x123758; GISEL-NEXT: ldp x13, x17, [x1, #32]3759; GISEL-NEXT: csel x9, x12, x9, eq3760; GISEL-NEXT: tst x8, #0x3f3761; GISEL-NEXT: str x16, [sp, #184] ; 8-byte Spill3762; GISEL-NEXT: csel x12, xzr, x30, eq3763; GISEL-NEXT: cmp x10, #23764; GISEL-NEXT: str x2, [sp, #88] ; 8-byte Spill3765; GISEL-NEXT: lsl x24, x13, x143766; GISEL-NEXT: orr x12, x2, x123767; GISEL-NEXT: str x13, [sp, #168] ; 8-byte Spill3768; GISEL-NEXT: csel x9, x12, x9, eq3769; GISEL-NEXT: tst x8, #0x3f3770; GISEL-NEXT: lsr x21, x13, x153771; GISEL-NEXT: csel x12, xzr, x24, eq3772; GISEL-NEXT: lsl x0, x17, x143773; GISEL-NEXT: cmp x10, #33774; GISEL-NEXT: orr x12, x25, x123775; GISEL-NEXT: ldp x16, x13, [x1, #48]3776; GISEL-NEXT: csel x9, x12, x9, eq3777; GISEL-NEXT: tst x8, #0x3f3778; GISEL-NEXT: lsr x3, x17, x153779; GISEL-NEXT: csel x12, xzr, x0, eq3780; GISEL-NEXT: cmp x10, #43781; GISEL-NEXT: str x0, [sp, #128] ; 8-byte Spill3782; GISEL-NEXT: lsl x2, x16, x143783; GISEL-NEXT: orr x12, x21, x123784; GISEL-NEXT: mov x0, x163785; GISEL-NEXT: csel x9, x12, x9, eq3786; GISEL-NEXT: tst x8, #0x3f3787; GISEL-NEXT: str x17, [sp, #144] ; 8-byte Spill3788; GISEL-NEXT: csel x12, xzr, x2, eq3789; GISEL-NEXT: str x2, [sp, #304] ; 8-byte Spill3790; GISEL-NEXT: lsl x2, x13, x143791; GISEL-NEXT: cmp x10, #53792; GISEL-NEXT: orr x12, x3, x123793; GISEL-NEXT: ldr x17, [x1, #64]3794; GISEL-NEXT: lsr x6, x0, x153795; GISEL-NEXT: csel x9, x12, x9, eq3796; GISEL-NEXT: tst x8, #0x3f3797; GISEL-NEXT: csel x12, xzr, x2, eq3798; GISEL-NEXT: stp x16, x13, [sp, #152] ; 16-byte Folded Spill3799; GISEL-NEXT: mov x16, x133800; GISEL-NEXT: cmp x10, #63801; GISEL-NEXT: orr x12, x6, x123802; GISEL-NEXT: lsl x0, x17, x143803; GISEL-NEXT: csel x9, x12, x9, eq3804; GISEL-NEXT: tst x8, #0x3f3805; GISEL-NEXT: lsr x16, x16, x153806; GISEL-NEXT: ldr x13, [x1, #72]3807; GISEL-NEXT: csel x12, xzr, x0, eq3808; GISEL-NEXT: cmp x10, #73809; GISEL-NEXT: orr x12, x16, x123810; GISEL-NEXT: stp x16, x0, [sp, #288] ; 16-byte Folded Spill3811; GISEL-NEXT: lsr x0, x17, x153812; GISEL-NEXT: csel x9, x12, x9, eq3813; GISEL-NEXT: lsl x12, x13, x143814; GISEL-NEXT: mov x16, x133815; GISEL-NEXT: str x13, [sp, #192] ; 8-byte Spill3816; GISEL-NEXT: ldp x13, x5, [x1, #80]3817; GISEL-NEXT: tst x8, #0x3f3818; GISEL-NEXT: str x17, [sp, #176] ; 8-byte Spill3819; GISEL-NEXT: csel x17, xzr, x12, eq3820; GISEL-NEXT: str x0, [sp, #112] ; 8-byte Spill3821; GISEL-NEXT: cmp x10, #83822; GISEL-NEXT: orr x17, x0, x173823; GISEL-NEXT: lsl x0, x13, x143824; GISEL-NEXT: str x12, [sp, #280] ; 8-byte Spill3825; GISEL-NEXT: csel x17, x17, x9, eq3826; GISEL-NEXT: tst x8, #0x3f3827; GISEL-NEXT: lsr x9, x16, x153828; GISEL-NEXT: csel x4, xzr, x0, eq3829; GISEL-NEXT: str x13, [sp, #200] ; 8-byte Spill3830; GISEL-NEXT: cmp x10, #93831; GISEL-NEXT: stp x9, x0, [sp, #96] ; 16-byte Folded Spill3832; GISEL-NEXT: orr x4, x9, x43833; GISEL-NEXT: lsl x23, x5, x143834; GISEL-NEXT: lsr x12, x13, x153835; GISEL-NEXT: ldp x9, x13, [x1, #96]3836; GISEL-NEXT: csel x17, x4, x17, eq3837; GISEL-NEXT: tst x8, #0x3f3838; GISEL-NEXT: str x28, [sp, #256] ; 8-byte Spill3839; GISEL-NEXT: csel x4, xzr, x23, eq3840; GISEL-NEXT: cmp x10, #103841; GISEL-NEXT: str x3, [sp, #120] ; 8-byte Spill3842; GISEL-NEXT: orr x4, x12, x43843; GISEL-NEXT: lsl x16, x9, x143844; GISEL-NEXT: stp x5, x9, [sp, #216] ; 16-byte Folded Spill3845; GISEL-NEXT: csel x17, x4, x17, eq3846; GISEL-NEXT: tst x8, #0x3f3847; GISEL-NEXT: lsl x3, x11, x143848; GISEL-NEXT: stp x16, x12, [sp, #72] ; 16-byte Folded Spill3849; GISEL-NEXT: mov x12, x93850; GISEL-NEXT: lsr x9, x5, x153851; GISEL-NEXT: csel x4, xzr, x16, eq3852; GISEL-NEXT: lsl x16, x13, x143853; GISEL-NEXT: cmp x10, #113854; GISEL-NEXT: orr x4, x9, x43855; GISEL-NEXT: lsr x12, x12, x153856; GISEL-NEXT: str x30, [sp, #48] ; 8-byte Spill3857; GISEL-NEXT: stp x16, x9, [sp, #56] ; 16-byte Folded Spill3858; GISEL-NEXT: ldr x9, [x1, #112]3859; GISEL-NEXT: csel x17, x4, x17, eq3860; GISEL-NEXT: tst x8, #0x3f3861; GISEL-NEXT: stp x25, x24, [sp, #16] ; 16-byte Folded Spill3862; GISEL-NEXT: ldr x5, [sp, #96] ; 8-byte Reload3863; GISEL-NEXT: csel x1, xzr, x16, eq3864; GISEL-NEXT: lsl x16, x9, x143865; GISEL-NEXT: cmp x10, #123866; GISEL-NEXT: orr x1, x12, x13867; GISEL-NEXT: stp x13, x9, [sp, #240] ; 16-byte Folded Spill3868; GISEL-NEXT: stp x16, x12, [sp, #320] ; 16-byte Folded Spill3869; GISEL-NEXT: mov x12, x93870; GISEL-NEXT: csel x1, x1, x17, eq3871; GISEL-NEXT: tst x8, #0x3f3872; GISEL-NEXT: lsr x9, x13, x153873; GISEL-NEXT: lsr x26, x12, x153874; GISEL-NEXT: csel x17, xzr, x16, eq3875; GISEL-NEXT: cmp x10, #133876; GISEL-NEXT: str x23, [sp, #272] ; 8-byte Spill3877; GISEL-NEXT: orr x13, x9, x173878; GISEL-NEXT: str x9, [sp, #312] ; 8-byte Spill3879; GISEL-NEXT: mov x9, x283880; GISEL-NEXT: csel x13, x13, x1, eq3881; GISEL-NEXT: tst x8, #0x3f3882; GISEL-NEXT: lsr x22, x9, x153883; GISEL-NEXT: csel x28, xzr, x27, eq3884; GISEL-NEXT: cmp x10, #143885; GISEL-NEXT: str x2, [sp, #8] ; 8-byte Spill3886; GISEL-NEXT: orr x28, x26, x283887; GISEL-NEXT: ldp x0, x16, [sp, #120] ; 16-byte Folded Reload3888; GISEL-NEXT: csel x12, x28, x13, eq3889; GISEL-NEXT: tst x8, #0x3f3890; GISEL-NEXT: ldr x13, [sp, #304] ; 8-byte Reload3891; GISEL-NEXT: csel x28, xzr, x3, eq3892; GISEL-NEXT: cmp x10, #153893; GISEL-NEXT: stp x22, x3, [sp, #32] ; 16-byte Folded Spill3894; GISEL-NEXT: orr x28, x22, x283895; GISEL-NEXT: ldp x15, x14, [sp, #72] ; 16-byte Folded Reload3896; GISEL-NEXT: csel x9, x28, x12, eq3897; GISEL-NEXT: cmp x8, #03898; GISEL-NEXT: mov x28, x243899; GISEL-NEXT: csel x9, x7, x9, eq3900; GISEL-NEXT: tst x8, #0x3f3901; GISEL-NEXT: ldr x7, [sp, #88] ; 8-byte Reload3902; GISEL-NEXT: str x9, [sp, #136] ; 8-byte Spill3903; GISEL-NEXT: csel x9, xzr, x19, eq3904; GISEL-NEXT: cmp x10, #03905; GISEL-NEXT: orr x9, x20, x93906; GISEL-NEXT: ldr x12, [sp, #280] ; 8-byte Reload3907; GISEL-NEXT: csel x9, x9, x11, eq3908; GISEL-NEXT: tst x8, #0x3f3909; GISEL-NEXT: csel x20, xzr, x30, eq3910; GISEL-NEXT: cmp x10, #13911; GISEL-NEXT: mov x30, x253912; GISEL-NEXT: orr x20, x7, x203913; GISEL-NEXT: ldp x4, x19, [sp, #104] ; 16-byte Folded Reload3914; GISEL-NEXT: csel x9, x20, x9, eq3915; GISEL-NEXT: tst x8, #0x3f3916; GISEL-NEXT: csel x20, xzr, x24, eq3917; GISEL-NEXT: cmp x10, #23918; GISEL-NEXT: mov x24, x63919; GISEL-NEXT: orr x20, x25, x203920; GISEL-NEXT: mov x25, x213921; GISEL-NEXT: csel x9, x20, x9, eq3922; GISEL-NEXT: tst x8, #0x3f3923; GISEL-NEXT: csel x20, xzr, x16, eq3924; GISEL-NEXT: cmp x10, #33925; GISEL-NEXT: orr x20, x21, x203926; GISEL-NEXT: ldp x1, x17, [sp, #56] ; 16-byte Folded Reload3927; GISEL-NEXT: csel x9, x20, x9, eq3928; GISEL-NEXT: tst x8, #0x3f3929; GISEL-NEXT: csel x20, xzr, x13, eq3930; GISEL-NEXT: cmp x10, #43931; GISEL-NEXT: orr x20, x0, x203932; GISEL-NEXT: csel x9, x20, x9, eq3933; GISEL-NEXT: tst x8, #0x3f3934; GISEL-NEXT: csel x20, xzr, x2, eq3935; GISEL-NEXT: cmp x10, #53936; GISEL-NEXT: orr x20, x6, x203937; GISEL-NEXT: ldp x21, x6, [sp, #288] ; 16-byte Folded Reload3938; GISEL-NEXT: csel x9, x20, x9, eq3939; GISEL-NEXT: tst x8, #0x3f3940; GISEL-NEXT: csel x20, xzr, x6, eq3941; GISEL-NEXT: cmp x10, #63942; GISEL-NEXT: orr x20, x21, x203943; GISEL-NEXT: csel x9, x20, x9, eq3944; GISEL-NEXT: tst x8, #0x3f3945; GISEL-NEXT: csel x20, xzr, x12, eq3946; GISEL-NEXT: cmp x10, #73947; GISEL-NEXT: orr x20, x19, x203948; GISEL-NEXT: csel x9, x20, x9, eq3949; GISEL-NEXT: tst x8, #0x3f3950; GISEL-NEXT: csel x20, xzr, x4, eq3951; GISEL-NEXT: cmp x10, #83952; GISEL-NEXT: orr x20, x5, x203953; GISEL-NEXT: csel x9, x20, x9, eq3954; GISEL-NEXT: tst x8, #0x3f3955; GISEL-NEXT: csel x20, xzr, x23, eq3956; GISEL-NEXT: cmp x10, #93957; GISEL-NEXT: ldr x23, [sp, #328] ; 8-byte Reload3958; GISEL-NEXT: orr x20, x14, x203959; GISEL-NEXT: csel x9, x20, x9, eq3960; GISEL-NEXT: tst x8, #0x3f3961; GISEL-NEXT: csel x20, xzr, x15, eq3962; GISEL-NEXT: cmp x10, #103963; GISEL-NEXT: orr x20, x17, x203964; GISEL-NEXT: csel x9, x20, x9, eq3965; GISEL-NEXT: tst x8, #0x3f3966; GISEL-NEXT: csel x20, xzr, x1, eq3967; GISEL-NEXT: cmp x10, #113968; GISEL-NEXT: orr x20, x23, x203969; GISEL-NEXT: csel x9, x20, x9, eq3970; GISEL-NEXT: ldp x23, x20, [sp, #312] ; 16-byte Folded Reload3971; GISEL-NEXT: tst x8, #0x3f3972; GISEL-NEXT: csel x20, xzr, x20, eq3973; GISEL-NEXT: cmp x10, #123974; GISEL-NEXT: orr x20, x23, x203975; GISEL-NEXT: mov x23, x263976; GISEL-NEXT: csel x9, x20, x9, eq3977; GISEL-NEXT: tst x8, #0x3f3978; GISEL-NEXT: csel x20, xzr, x27, eq3979; GISEL-NEXT: cmp x10, #133980; GISEL-NEXT: orr x20, x26, x203981; GISEL-NEXT: ldr x26, [sp, #272] ; 8-byte Reload3982; GISEL-NEXT: csel x9, x20, x9, eq3983; GISEL-NEXT: tst x8, #0x3f3984; GISEL-NEXT: csel x20, xzr, x3, eq3985; GISEL-NEXT: cmp x10, #143986; GISEL-NEXT: ldr x3, [sp, #232] ; 8-byte Reload3987; GISEL-NEXT: orr x20, x22, x203988; GISEL-NEXT: mov x22, x233989; GISEL-NEXT: csel x9, x20, x9, eq3990; GISEL-NEXT: cmp x10, #153991; GISEL-NEXT: csel x9, x11, x9, eq3992; GISEL-NEXT: cmp x8, #03993; GISEL-NEXT: csel x9, x3, x9, eq3994; GISEL-NEXT: tst x8, #0x3f3995; GISEL-NEXT: mov x3, x163996; GISEL-NEXT: str x9, [sp, #232] ; 8-byte Spill3997; GISEL-NEXT: ldr x9, [sp, #48] ; 8-byte Reload3998; GISEL-NEXT: csel x9, xzr, x9, eq3999; GISEL-NEXT: cmp x10, #04000; GISEL-NEXT: orr x9, x7, x94001; GISEL-NEXT: ldr x7, [sp, #312] ; 8-byte Reload4002; GISEL-NEXT: csel x9, x9, x11, eq4003; GISEL-NEXT: tst x8, #0x3f4004; GISEL-NEXT: csel x20, xzr, x28, eq4005; GISEL-NEXT: cmp x10, #14006; GISEL-NEXT: mov x28, x214007; GISEL-NEXT: orr x20, x30, x204008; GISEL-NEXT: csel x9, x20, x9, eq4009; GISEL-NEXT: tst x8, #0x3f4010; GISEL-NEXT: csel x20, xzr, x16, eq4011; GISEL-NEXT: cmp x10, #24012; GISEL-NEXT: mov x16, x04013; GISEL-NEXT: orr x20, x25, x204014; GISEL-NEXT: csel x9, x20, x9, eq4015; GISEL-NEXT: tst x8, #0x3f4016; GISEL-NEXT: csel x20, xzr, x13, eq4017; GISEL-NEXT: cmp x10, #34018; GISEL-NEXT: orr x20, x0, x204019; GISEL-NEXT: mov x0, x194020; GISEL-NEXT: csel x9, x20, x9, eq4021; GISEL-NEXT: tst x8, #0x3f4022; GISEL-NEXT: csel x20, xzr, x2, eq4023; GISEL-NEXT: cmp x10, #44024; GISEL-NEXT: mov x2, x44025; GISEL-NEXT: orr x20, x24, x204026; GISEL-NEXT: csel x9, x20, x9, eq4027; GISEL-NEXT: tst x8, #0x3f4028; GISEL-NEXT: csel x20, xzr, x6, eq4029; GISEL-NEXT: cmp x10, #54030; GISEL-NEXT: mov x6, x54031; GISEL-NEXT: orr x20, x21, x204032; GISEL-NEXT: mov x21, x254033; GISEL-NEXT: csel x9, x20, x9, eq4034; GISEL-NEXT: tst x8, #0x3f4035; GISEL-NEXT: csel x20, xzr, x12, eq4036; GISEL-NEXT: cmp x10, #64037; GISEL-NEXT: ldr x12, [sp, #208] ; 8-byte Reload4038; GISEL-NEXT: orr x20, x19, x204039; GISEL-NEXT: mov x19, x274040; GISEL-NEXT: csel x9, x20, x9, eq4041; GISEL-NEXT: tst x8, #0x3f4042; GISEL-NEXT: csel x20, xzr, x4, eq4043; GISEL-NEXT: cmp x10, #74044; GISEL-NEXT: orr x20, x5, x204045; GISEL-NEXT: ldp x30, x4, [sp, #320] ; 16-byte Folded Reload4046; GISEL-NEXT: csel x9, x20, x9, eq4047; GISEL-NEXT: tst x8, #0x3f4048; GISEL-NEXT: mov x5, x34049; GISEL-NEXT: csel x20, xzr, x26, eq4050; GISEL-NEXT: cmp x10, #84051; GISEL-NEXT: orr x20, x14, x204052; GISEL-NEXT: csel x9, x20, x9, eq4053; GISEL-NEXT: tst x8, #0x3f4054; GISEL-NEXT: csel x20, xzr, x15, eq4055; GISEL-NEXT: cmp x10, #94056; GISEL-NEXT: orr x20, x17, x204057; GISEL-NEXT: csel x9, x20, x9, eq4058; GISEL-NEXT: tst x8, #0x3f4059; GISEL-NEXT: csel x20, xzr, x1, eq4060; GISEL-NEXT: cmp x10, #104061; GISEL-NEXT: orr x20, x4, x204062; GISEL-NEXT: csel x9, x20, x9, eq4063; GISEL-NEXT: tst x8, #0x3f4064; GISEL-NEXT: csel x20, xzr, x30, eq4065; GISEL-NEXT: cmp x10, #114066; GISEL-NEXT: orr x20, x7, x204067; GISEL-NEXT: csel x9, x20, x9, eq4068; GISEL-NEXT: tst x8, #0x3f4069; GISEL-NEXT: csel x20, xzr, x27, eq4070; GISEL-NEXT: cmp x10, #124071; GISEL-NEXT: orr x20, x23, x204072; GISEL-NEXT: ldp x27, x23, [sp, #32] ; 16-byte Folded Reload4073; GISEL-NEXT: csel x9, x20, x9, eq4074; GISEL-NEXT: tst x8, #0x3f4075; GISEL-NEXT: csel x20, xzr, x23, eq4076; GISEL-NEXT: cmp x10, #134077; GISEL-NEXT: orr x20, x27, x204078; GISEL-NEXT: csel x9, x20, x9, eq4079; GISEL-NEXT: cmp x10, #144080; GISEL-NEXT: csel x9, x11, x9, eq4081; GISEL-NEXT: cmp x10, #154082; GISEL-NEXT: csel x9, x11, x9, eq4083; GISEL-NEXT: cmp x8, #04084; GISEL-NEXT: csel x9, x12, x9, eq4085; GISEL-NEXT: tst x8, #0x3f4086; GISEL-NEXT: str x9, [sp, #208] ; 8-byte Spill4087; GISEL-NEXT: ldp x12, x9, [sp, #16] ; 16-byte Folded Reload4088; GISEL-NEXT: csel x9, xzr, x9, eq4089; GISEL-NEXT: cmp x10, #04090; GISEL-NEXT: orr x9, x12, x94091; GISEL-NEXT: ldr x12, [sp, #184] ; 8-byte Reload4092; GISEL-NEXT: csel x9, x9, x11, eq4093; GISEL-NEXT: tst x8, #0x3f4094; GISEL-NEXT: csel x20, xzr, x3, eq4095; GISEL-NEXT: cmp x10, #14096; GISEL-NEXT: ldr x3, [sp, #296] ; 8-byte Reload4097; GISEL-NEXT: orr x20, x25, x204098; GISEL-NEXT: ldr x25, [sp, #280] ; 8-byte Reload4099; GISEL-NEXT: csel x9, x20, x9, eq4100; GISEL-NEXT: tst x8, #0x3f4101; GISEL-NEXT: csel x20, xzr, x13, eq4102; GISEL-NEXT: cmp x10, #24103; GISEL-NEXT: ldr x13, [sp, #8] ; 8-byte Reload4104; GISEL-NEXT: orr x20, x16, x204105; GISEL-NEXT: csel x9, x20, x9, eq4106; GISEL-NEXT: tst x8, #0x3f4107; GISEL-NEXT: csel x20, xzr, x13, eq4108; GISEL-NEXT: cmp x10, #34109; GISEL-NEXT: orr x20, x24, x204110; GISEL-NEXT: csel x9, x20, x9, eq4111; GISEL-NEXT: tst x8, #0x3f4112; GISEL-NEXT: csel x20, xzr, x3, eq4113; GISEL-NEXT: cmp x10, #44114; GISEL-NEXT: orr x20, x28, x204115; GISEL-NEXT: mov x28, x164116; GISEL-NEXT: csel x9, x20, x9, eq4117; GISEL-NEXT: tst x8, #0x3f4118; GISEL-NEXT: csel x20, xzr, x25, eq4119; GISEL-NEXT: cmp x10, #54120; GISEL-NEXT: orr x20, x0, x204121; GISEL-NEXT: csel x9, x20, x9, eq4122; GISEL-NEXT: tst x8, #0x3f4123; GISEL-NEXT: csel x20, xzr, x2, eq4124; GISEL-NEXT: cmp x10, #64125; GISEL-NEXT: orr x20, x6, x204126; GISEL-NEXT: csel x9, x20, x9, eq4127; GISEL-NEXT: tst x8, #0x3f4128; GISEL-NEXT: csel x20, xzr, x26, eq4129; GISEL-NEXT: cmp x10, #74130; GISEL-NEXT: mov x26, x144131; GISEL-NEXT: orr x20, x14, x204132; GISEL-NEXT: mov x14, x154133; GISEL-NEXT: csel x9, x20, x9, eq4134; GISEL-NEXT: tst x8, #0x3f4135; GISEL-NEXT: csel x20, xzr, x15, eq4136; GISEL-NEXT: cmp x10, #84137; GISEL-NEXT: mov x15, x174138; GISEL-NEXT: orr x20, x17, x204139; GISEL-NEXT: mov x17, x14140; GISEL-NEXT: csel x9, x20, x9, eq4141; GISEL-NEXT: tst x8, #0x3f4142; GISEL-NEXT: csel x20, xzr, x1, eq4143; GISEL-NEXT: cmp x10, #94144; GISEL-NEXT: mov x1, x44145; GISEL-NEXT: orr x20, x4, x204146; GISEL-NEXT: mov x4, x304147; GISEL-NEXT: csel x9, x20, x9, eq4148; GISEL-NEXT: tst x8, #0x3f4149; GISEL-NEXT: csel x20, xzr, x30, eq4150; GISEL-NEXT: cmp x10, #104151; GISEL-NEXT: ldr x30, [sp, #272] ; 8-byte Reload4152; GISEL-NEXT: orr x20, x7, x204153; GISEL-NEXT: csel x9, x20, x9, eq4154; GISEL-NEXT: tst x8, #0x3f4155; GISEL-NEXT: csel x20, xzr, x19, eq4156; GISEL-NEXT: cmp x10, #114157; GISEL-NEXT: orr x20, x22, x204158; GISEL-NEXT: csel x9, x20, x9, eq4159; GISEL-NEXT: tst x8, #0x3f4160; GISEL-NEXT: csel x20, xzr, x23, eq4161; GISEL-NEXT: cmp x10, #124162; GISEL-NEXT: orr x20, x27, x204163; GISEL-NEXT: csel x9, x20, x9, eq4164; GISEL-NEXT: cmp x10, #134165; GISEL-NEXT: csel x9, x11, x9, eq4166; GISEL-NEXT: cmp x10, #144167; GISEL-NEXT: csel x9, x11, x9, eq4168; GISEL-NEXT: cmp x10, #154169; GISEL-NEXT: csel x9, x11, x9, eq4170; GISEL-NEXT: cmp x8, #04171; GISEL-NEXT: csel x9, x12, x9, eq4172; GISEL-NEXT: tst x8, #0x3f4173; GISEL-NEXT: ldr x12, [sp, #168] ; 8-byte Reload4174; GISEL-NEXT: str x9, [sp, #184] ; 8-byte Spill4175; GISEL-NEXT: csel x9, xzr, x5, eq4176; GISEL-NEXT: cmp x10, #04177; GISEL-NEXT: orr x9, x21, x94178; GISEL-NEXT: ldr x5, [sp, #304] ; 8-byte Reload4179; GISEL-NEXT: mov x21, x04180; GISEL-NEXT: csel x9, x9, x11, eq4181; GISEL-NEXT: tst x8, #0x3f4182; GISEL-NEXT: csel x20, xzr, x5, eq4183; GISEL-NEXT: cmp x10, #14184; GISEL-NEXT: orr x20, x16, x204185; GISEL-NEXT: mov x16, x244186; GISEL-NEXT: csel x9, x20, x9, eq4187; GISEL-NEXT: tst x8, #0x3f4188; GISEL-NEXT: csel x20, xzr, x13, eq4189; GISEL-NEXT: cmp x10, #24190; GISEL-NEXT: orr x20, x24, x204191; GISEL-NEXT: ldr x24, [sp, #288] ; 8-byte Reload4192; GISEL-NEXT: csel x9, x20, x9, eq4193; GISEL-NEXT: tst x8, #0x3f4194; GISEL-NEXT: csel x20, xzr, x3, eq4195; GISEL-NEXT: cmp x10, #34196; GISEL-NEXT: orr x20, x24, x204197; GISEL-NEXT: csel x9, x20, x9, eq4198; GISEL-NEXT: tst x8, #0x3f4199; GISEL-NEXT: csel x20, xzr, x25, eq4200; GISEL-NEXT: cmp x10, #44201; GISEL-NEXT: orr x20, x0, x204202; GISEL-NEXT: csel x9, x20, x9, eq4203; GISEL-NEXT: tst x8, #0x3f4204; GISEL-NEXT: csel x20, xzr, x2, eq4205; GISEL-NEXT: cmp x10, #54206; GISEL-NEXT: orr x20, x6, x204207; GISEL-NEXT: csel x9, x20, x9, eq4208; GISEL-NEXT: tst x8, #0x3f4209; GISEL-NEXT: csel x20, xzr, x30, eq4210; GISEL-NEXT: cmp x10, #64211; GISEL-NEXT: orr x20, x26, x204212; GISEL-NEXT: csel x9, x20, x9, eq4213; GISEL-NEXT: tst x8, #0x3f4214; GISEL-NEXT: csel x20, xzr, x14, eq4215; GISEL-NEXT: cmp x10, #74216; GISEL-NEXT: orr x20, x15, x204217; GISEL-NEXT: csel x9, x20, x9, eq4218; GISEL-NEXT: tst x8, #0x3f4219; GISEL-NEXT: csel x20, xzr, x17, eq4220; GISEL-NEXT: cmp x10, #84221; GISEL-NEXT: orr x20, x1, x204222; GISEL-NEXT: csel x9, x20, x9, eq4223; GISEL-NEXT: tst x8, #0x3f4224; GISEL-NEXT: csel x20, xzr, x4, eq4225; GISEL-NEXT: cmp x10, #94226; GISEL-NEXT: orr x20, x7, x204227; GISEL-NEXT: csel x9, x20, x9, eq4228; GISEL-NEXT: tst x8, #0x3f4229; GISEL-NEXT: csel x20, xzr, x19, eq4230; GISEL-NEXT: cmp x10, #104231; GISEL-NEXT: orr x20, x22, x204232; GISEL-NEXT: csel x9, x20, x9, eq4233; GISEL-NEXT: tst x8, #0x3f4234; GISEL-NEXT: csel x20, xzr, x23, eq4235; GISEL-NEXT: cmp x10, #114236; GISEL-NEXT: orr x20, x27, x204237; GISEL-NEXT: csel x9, x20, x9, eq4238; GISEL-NEXT: cmp x10, #124239; GISEL-NEXT: csel x9, x11, x9, eq4240; GISEL-NEXT: cmp x10, #134241; GISEL-NEXT: csel x9, x11, x9, eq4242; GISEL-NEXT: cmp x10, #144243; GISEL-NEXT: csel x9, x11, x9, eq4244; GISEL-NEXT: cmp x10, #154245; GISEL-NEXT: csel x9, x11, x9, eq4246; GISEL-NEXT: cmp x8, #04247; GISEL-NEXT: csel x9, x12, x9, eq4248; GISEL-NEXT: tst x8, #0x3f4249; GISEL-NEXT: ldr x12, [sp, #144] ; 8-byte Reload4250; GISEL-NEXT: str x9, [sp, #168] ; 8-byte Spill4251; GISEL-NEXT: csel x9, xzr, x5, eq4252; GISEL-NEXT: cmp x10, #04253; GISEL-NEXT: orr x9, x28, x94254; GISEL-NEXT: mov x28, x34255; GISEL-NEXT: mov x5, x74256; GISEL-NEXT: csel x9, x9, x11, eq4257; GISEL-NEXT: tst x8, #0x3f4258; GISEL-NEXT: csel x20, xzr, x13, eq4259; GISEL-NEXT: cmp x10, #14260; GISEL-NEXT: orr x20, x16, x204261; GISEL-NEXT: csel x9, x20, x9, eq4262; GISEL-NEXT: tst x8, #0x3f4263; GISEL-NEXT: csel x20, xzr, x3, eq4264; GISEL-NEXT: cmp x10, #24265; GISEL-NEXT: orr x20, x24, x204266; GISEL-NEXT: csel x9, x20, x9, eq4267; GISEL-NEXT: tst x8, #0x3f4268; GISEL-NEXT: csel x20, xzr, x25, eq4269; GISEL-NEXT: cmp x10, #34270; GISEL-NEXT: orr x20, x0, x204271; GISEL-NEXT: csel x9, x20, x9, eq4272; GISEL-NEXT: tst x8, #0x3f4273; GISEL-NEXT: csel x20, xzr, x2, eq4274; GISEL-NEXT: cmp x10, #44275; GISEL-NEXT: orr x20, x6, x204276; GISEL-NEXT: csel x9, x20, x9, eq4277; GISEL-NEXT: tst x8, #0x3f4278; GISEL-NEXT: csel x20, xzr, x30, eq4279; GISEL-NEXT: cmp x10, #54280; GISEL-NEXT: orr x20, x26, x204281; GISEL-NEXT: csel x9, x20, x9, eq4282; GISEL-NEXT: tst x8, #0x3f4283; GISEL-NEXT: csel x20, xzr, x14, eq4284; GISEL-NEXT: cmp x10, #64285; GISEL-NEXT: orr x20, x15, x204286; GISEL-NEXT: csel x9, x20, x9, eq4287; GISEL-NEXT: tst x8, #0x3f4288; GISEL-NEXT: csel x20, xzr, x17, eq4289; GISEL-NEXT: cmp x10, #74290; GISEL-NEXT: orr x20, x1, x204291; GISEL-NEXT: csel x9, x20, x9, eq4292; GISEL-NEXT: tst x8, #0x3f4293; GISEL-NEXT: csel x20, xzr, x4, eq4294; GISEL-NEXT: cmp x10, #84295; GISEL-NEXT: orr x20, x7, x204296; GISEL-NEXT: mov x7, x194297; GISEL-NEXT: csel x9, x20, x9, eq4298; GISEL-NEXT: tst x8, #0x3f4299; GISEL-NEXT: csel x20, xzr, x19, eq4300; GISEL-NEXT: cmp x10, #94301; GISEL-NEXT: mov x19, x224302; GISEL-NEXT: orr x20, x22, x204303; GISEL-NEXT: mov x22, x234304; GISEL-NEXT: csel x9, x20, x9, eq4305; GISEL-NEXT: tst x8, #0x3f4306; GISEL-NEXT: csel x20, xzr, x23, eq4307; GISEL-NEXT: cmp x10, #104308; GISEL-NEXT: orr x20, x27, x204309; GISEL-NEXT: csel x9, x20, x9, eq4310; GISEL-NEXT: cmp x10, #114311; GISEL-NEXT: csel x9, x11, x9, eq4312; GISEL-NEXT: cmp x10, #124313; GISEL-NEXT: csel x9, x11, x9, eq4314; GISEL-NEXT: cmp x10, #134315; GISEL-NEXT: csel x9, x11, x9, eq4316; GISEL-NEXT: cmp x10, #144317; GISEL-NEXT: csel x9, x11, x9, eq4318; GISEL-NEXT: cmp x10, #154319; GISEL-NEXT: csel x9, x11, x9, eq4320; GISEL-NEXT: cmp x8, #04321; GISEL-NEXT: csel x9, x12, x9, eq4322; GISEL-NEXT: tst x8, #0x3f4323; GISEL-NEXT: ldr x12, [sp, #152] ; 8-byte Reload4324; GISEL-NEXT: str x9, [sp, #304] ; 8-byte Spill4325; GISEL-NEXT: csel x9, xzr, x13, eq4326; GISEL-NEXT: cmp x10, #04327; GISEL-NEXT: orr x9, x16, x94328; GISEL-NEXT: mov x16, x04329; GISEL-NEXT: csel x9, x9, x11, eq4330; GISEL-NEXT: tst x8, #0x3f4331; GISEL-NEXT: csel x3, xzr, x3, eq4332; GISEL-NEXT: cmp x10, #14333; GISEL-NEXT: orr x3, x24, x34334; GISEL-NEXT: csel x9, x3, x9, eq4335; GISEL-NEXT: tst x8, #0x3f4336; GISEL-NEXT: csel x3, xzr, x25, eq4337; GISEL-NEXT: cmp x10, #24338; GISEL-NEXT: orr x3, x21, x34339; GISEL-NEXT: csel x9, x3, x9, eq4340; GISEL-NEXT: tst x8, #0x3f4341; GISEL-NEXT: csel x3, xzr, x2, eq4342; GISEL-NEXT: cmp x10, #34343; GISEL-NEXT: orr x3, x6, x34344; GISEL-NEXT: csel x9, x3, x9, eq4345; GISEL-NEXT: tst x8, #0x3f4346; GISEL-NEXT: csel x3, xzr, x30, eq4347; GISEL-NEXT: cmp x10, #44348; GISEL-NEXT: orr x3, x26, x34349; GISEL-NEXT: csel x9, x3, x9, eq4350; GISEL-NEXT: tst x8, #0x3f4351; GISEL-NEXT: csel x3, xzr, x14, eq4352; GISEL-NEXT: cmp x10, #54353; GISEL-NEXT: orr x3, x15, x34354; GISEL-NEXT: csel x9, x3, x9, eq4355; GISEL-NEXT: tst x8, #0x3f4356; GISEL-NEXT: csel x3, xzr, x17, eq4357; GISEL-NEXT: cmp x10, #64358; GISEL-NEXT: orr x3, x1, x34359; GISEL-NEXT: csel x9, x3, x9, eq4360; GISEL-NEXT: tst x8, #0x3f4361; GISEL-NEXT: csel x3, xzr, x4, eq4362; GISEL-NEXT: cmp x10, #74363; GISEL-NEXT: orr x3, x5, x34364; GISEL-NEXT: csel x9, x3, x9, eq4365; GISEL-NEXT: tst x8, #0x3f4366; GISEL-NEXT: csel x3, xzr, x7, eq4367; GISEL-NEXT: cmp x10, #84368; GISEL-NEXT: orr x3, x19, x34369; GISEL-NEXT: csel x9, x3, x9, eq4370; GISEL-NEXT: tst x8, #0x3f4371; GISEL-NEXT: csel x3, xzr, x23, eq4372; GISEL-NEXT: cmp x10, #94373; GISEL-NEXT: orr x3, x27, x34374; GISEL-NEXT: csel x9, x3, x9, eq4375; GISEL-NEXT: cmp x10, #104376; GISEL-NEXT: mov x3, x24377; GISEL-NEXT: csel x9, x11, x9, eq4378; GISEL-NEXT: cmp x10, #114379; GISEL-NEXT: csel x9, x11, x9, eq4380; GISEL-NEXT: cmp x10, #124381; GISEL-NEXT: csel x9, x11, x9, eq4382; GISEL-NEXT: cmp x10, #134383; GISEL-NEXT: csel x9, x11, x9, eq4384; GISEL-NEXT: cmp x10, #144385; GISEL-NEXT: csel x9, x11, x9, eq4386; GISEL-NEXT: cmp x10, #154387; GISEL-NEXT: csel x9, x11, x9, eq4388; GISEL-NEXT: cmp x8, #04389; GISEL-NEXT: csel x20, x12, x9, eq4390; GISEL-NEXT: tst x8, #0x3f4391; GISEL-NEXT: ldr x12, [sp, #160] ; 8-byte Reload4392; GISEL-NEXT: csel x9, xzr, x28, eq4393; GISEL-NEXT: cmp x10, #04394; GISEL-NEXT: orr x9, x24, x94395; GISEL-NEXT: csel x9, x9, x11, eq4396; GISEL-NEXT: tst x8, #0x3f4397; GISEL-NEXT: csel x0, xzr, x25, eq4398; GISEL-NEXT: cmp x10, #14399; GISEL-NEXT: orr x0, x21, x04400; GISEL-NEXT: mov x21, x64401; GISEL-NEXT: csel x9, x0, x9, eq4402; GISEL-NEXT: tst x8, #0x3f4403; GISEL-NEXT: csel x0, xzr, x2, eq4404; GISEL-NEXT: cmp x10, #24405; GISEL-NEXT: orr x0, x6, x04406; GISEL-NEXT: csel x9, x0, x9, eq4407; GISEL-NEXT: tst x8, #0x3f4408; GISEL-NEXT: csel x0, xzr, x30, eq4409; GISEL-NEXT: cmp x10, #34410; GISEL-NEXT: orr x0, x26, x04411; GISEL-NEXT: csel x9, x0, x9, eq4412; GISEL-NEXT: tst x8, #0x3f4413; GISEL-NEXT: csel x0, xzr, x14, eq4414; GISEL-NEXT: cmp x10, #44415; GISEL-NEXT: orr x0, x15, x04416; GISEL-NEXT: csel x9, x0, x9, eq4417; GISEL-NEXT: tst x8, #0x3f4418; GISEL-NEXT: csel x0, xzr, x17, eq4419; GISEL-NEXT: cmp x10, #54420; GISEL-NEXT: orr x0, x1, x04421; GISEL-NEXT: csel x9, x0, x9, eq4422; GISEL-NEXT: tst x8, #0x3f4423; GISEL-NEXT: csel x0, xzr, x4, eq4424; GISEL-NEXT: cmp x10, #64425; GISEL-NEXT: orr x0, x5, x04426; GISEL-NEXT: csel x9, x0, x9, eq4427; GISEL-NEXT: tst x8, #0x3f4428; GISEL-NEXT: csel x0, xzr, x7, eq4429; GISEL-NEXT: cmp x10, #74430; GISEL-NEXT: orr x0, x19, x04431; GISEL-NEXT: csel x9, x0, x9, eq4432; GISEL-NEXT: tst x8, #0x3f4433; GISEL-NEXT: csel x0, xzr, x23, eq4434; GISEL-NEXT: cmp x10, #84435; GISEL-NEXT: orr x0, x27, x04436; GISEL-NEXT: csel x9, x0, x9, eq4437; GISEL-NEXT: cmp x10, #94438; GISEL-NEXT: csel x9, x11, x9, eq4439; GISEL-NEXT: cmp x10, #104440; GISEL-NEXT: csel x9, x11, x9, eq4441; GISEL-NEXT: cmp x10, #114442; GISEL-NEXT: csel x9, x11, x9, eq4443; GISEL-NEXT: cmp x10, #124444; GISEL-NEXT: csel x9, x11, x9, eq4445; GISEL-NEXT: cmp x10, #134446; GISEL-NEXT: csel x9, x11, x9, eq4447; GISEL-NEXT: cmp x10, #144448; GISEL-NEXT: csel x9, x11, x9, eq4449; GISEL-NEXT: cmp x10, #154450; GISEL-NEXT: csel x9, x11, x9, eq4451; GISEL-NEXT: cmp x8, #04452; GISEL-NEXT: csel x2, x12, x9, eq4453; GISEL-NEXT: tst x8, #0x3f4454; GISEL-NEXT: ldr x12, [sp, #176] ; 8-byte Reload4455; GISEL-NEXT: csel x9, xzr, x25, eq4456; GISEL-NEXT: cmp x10, #04457; GISEL-NEXT: orr x9, x16, x94458; GISEL-NEXT: ldr x16, [sp, #216] ; 8-byte Reload4459; GISEL-NEXT: csel x9, x9, x11, eq4460; GISEL-NEXT: tst x8, #0x3f4461; GISEL-NEXT: csel x13, xzr, x3, eq4462; GISEL-NEXT: cmp x10, #14463; GISEL-NEXT: orr x13, x6, x134464; GISEL-NEXT: csel x9, x13, x9, eq4465; GISEL-NEXT: tst x8, #0x3f4466; GISEL-NEXT: csel x13, xzr, x30, eq4467; GISEL-NEXT: cmp x10, #24468; GISEL-NEXT: orr x13, x26, x134469; GISEL-NEXT: csel x9, x13, x9, eq4470; GISEL-NEXT: tst x8, #0x3f4471; GISEL-NEXT: csel x13, xzr, x14, eq4472; GISEL-NEXT: cmp x10, #34473; GISEL-NEXT: orr x13, x15, x134474; GISEL-NEXT: csel x9, x13, x9, eq4475; GISEL-NEXT: tst x8, #0x3f4476; GISEL-NEXT: csel x13, xzr, x17, eq4477; GISEL-NEXT: cmp x10, #44478; GISEL-NEXT: orr x13, x1, x134479; GISEL-NEXT: csel x9, x13, x9, eq4480; GISEL-NEXT: tst x8, #0x3f4481; GISEL-NEXT: csel x13, xzr, x4, eq4482; GISEL-NEXT: cmp x10, #54483; GISEL-NEXT: orr x13, x5, x134484; GISEL-NEXT: csel x9, x13, x9, eq4485; GISEL-NEXT: tst x8, #0x3f4486; GISEL-NEXT: csel x13, xzr, x7, eq4487; GISEL-NEXT: cmp x10, #64488; GISEL-NEXT: orr x13, x19, x134489; GISEL-NEXT: csel x9, x13, x9, eq4490; GISEL-NEXT: tst x8, #0x3f4491; GISEL-NEXT: csel x13, xzr, x23, eq4492; GISEL-NEXT: cmp x10, #74493; GISEL-NEXT: orr x13, x27, x134494; GISEL-NEXT: csel x9, x13, x9, eq4495; GISEL-NEXT: cmp x10, #84496; GISEL-NEXT: csel x9, x11, x9, eq4497; GISEL-NEXT: cmp x10, #94498; GISEL-NEXT: csel x9, x11, x9, eq4499; GISEL-NEXT: cmp x10, #104500; GISEL-NEXT: csel x9, x11, x9, eq4501; GISEL-NEXT: cmp x10, #114502; GISEL-NEXT: csel x9, x11, x9, eq4503; GISEL-NEXT: cmp x10, #124504; GISEL-NEXT: csel x9, x11, x9, eq4505; GISEL-NEXT: cmp x10, #134506; GISEL-NEXT: csel x9, x11, x9, eq4507; GISEL-NEXT: cmp x10, #144508; GISEL-NEXT: csel x9, x11, x9, eq4509; GISEL-NEXT: cmp x10, #154510; GISEL-NEXT: csel x9, x11, x9, eq4511; GISEL-NEXT: cmp x8, #04512; GISEL-NEXT: csel x6, x12, x9, eq4513; GISEL-NEXT: tst x8, #0x3f4514; GISEL-NEXT: csel x9, xzr, x3, eq4515; GISEL-NEXT: cmp x10, #04516; GISEL-NEXT: orr x9, x21, x94517; GISEL-NEXT: csel x9, x9, x11, eq4518; GISEL-NEXT: tst x8, #0x3f4519; GISEL-NEXT: csel x12, xzr, x30, eq4520; GISEL-NEXT: cmp x10, #14521; GISEL-NEXT: orr x12, x26, x124522; GISEL-NEXT: csel x9, x12, x9, eq4523; GISEL-NEXT: tst x8, #0x3f4524; GISEL-NEXT: csel x12, xzr, x14, eq4525; GISEL-NEXT: cmp x10, #24526; GISEL-NEXT: orr x12, x15, x124527; GISEL-NEXT: csel x9, x12, x9, eq4528; GISEL-NEXT: tst x8, #0x3f4529; GISEL-NEXT: csel x12, xzr, x17, eq4530; GISEL-NEXT: cmp x10, #34531; GISEL-NEXT: orr x12, x1, x124532; GISEL-NEXT: csel x9, x12, x9, eq4533; GISEL-NEXT: tst x8, #0x3f4534; GISEL-NEXT: csel x12, xzr, x4, eq4535; GISEL-NEXT: cmp x10, #44536; GISEL-NEXT: orr x12, x5, x124537; GISEL-NEXT: csel x9, x12, x9, eq4538; GISEL-NEXT: tst x8, #0x3f4539; GISEL-NEXT: csel x12, xzr, x7, eq4540; GISEL-NEXT: cmp x10, #54541; GISEL-NEXT: orr x12, x19, x124542; GISEL-NEXT: csel x9, x12, x9, eq4543; GISEL-NEXT: tst x8, #0x3f4544; GISEL-NEXT: csel x12, xzr, x23, eq4545; GISEL-NEXT: cmp x10, #64546; GISEL-NEXT: orr x12, x27, x124547; GISEL-NEXT: csel x9, x12, x9, eq4548; GISEL-NEXT: cmp x10, #74549; GISEL-NEXT: ldr x12, [sp, #192] ; 8-byte Reload4550; GISEL-NEXT: csel x9, x11, x9, eq4551; GISEL-NEXT: cmp x10, #84552; GISEL-NEXT: csel x9, x11, x9, eq4553; GISEL-NEXT: cmp x10, #94554; GISEL-NEXT: csel x9, x11, x9, eq4555; GISEL-NEXT: cmp x10, #104556; GISEL-NEXT: csel x9, x11, x9, eq4557; GISEL-NEXT: cmp x10, #114558; GISEL-NEXT: csel x9, x11, x9, eq4559; GISEL-NEXT: cmp x10, #124560; GISEL-NEXT: csel x9, x11, x9, eq4561; GISEL-NEXT: cmp x10, #134562; GISEL-NEXT: csel x9, x11, x9, eq4563; GISEL-NEXT: cmp x10, #144564; GISEL-NEXT: csel x9, x11, x9, eq4565; GISEL-NEXT: cmp x10, #154566; GISEL-NEXT: csel x9, x11, x9, eq4567; GISEL-NEXT: cmp x8, #04568; GISEL-NEXT: csel x9, x12, x9, eq4569; GISEL-NEXT: tst x8, #0x3f4570; GISEL-NEXT: csel x12, xzr, x30, eq4571; GISEL-NEXT: cmp x10, #04572; GISEL-NEXT: orr x12, x26, x124573; GISEL-NEXT: ldp x29, x30, [sp, #416] ; 16-byte Folded Reload4574; GISEL-NEXT: csel x12, x12, x11, eq4575; GISEL-NEXT: tst x8, #0x3f4576; GISEL-NEXT: csel x13, xzr, x14, eq4577; GISEL-NEXT: cmp x10, #14578; GISEL-NEXT: orr x13, x15, x134579; GISEL-NEXT: ldp x26, x25, [sp, #352] ; 16-byte Folded Reload4580; GISEL-NEXT: csel x12, x13, x12, eq4581; GISEL-NEXT: tst x8, #0x3f4582; GISEL-NEXT: csel x13, xzr, x17, eq4583; GISEL-NEXT: cmp x10, #24584; GISEL-NEXT: orr x13, x1, x134585; GISEL-NEXT: csel x12, x13, x12, eq4586; GISEL-NEXT: tst x8, #0x3f4587; GISEL-NEXT: csel x13, xzr, x4, eq4588; GISEL-NEXT: cmp x10, #34589; GISEL-NEXT: orr x13, x5, x134590; GISEL-NEXT: csel x12, x13, x12, eq4591; GISEL-NEXT: tst x8, #0x3f4592; GISEL-NEXT: csel x13, xzr, x7, eq4593; GISEL-NEXT: cmp x10, #44594; GISEL-NEXT: orr x13, x19, x134595; GISEL-NEXT: csel x12, x13, x12, eq4596; GISEL-NEXT: tst x8, #0x3f4597; GISEL-NEXT: csel x13, xzr, x23, eq4598; GISEL-NEXT: cmp x10, #54599; GISEL-NEXT: orr x13, x27, x134600; GISEL-NEXT: csel x12, x13, x12, eq4601; GISEL-NEXT: cmp x10, #64602; GISEL-NEXT: ldr x13, [sp, #200] ; 8-byte Reload4603; GISEL-NEXT: csel x12, x11, x12, eq4604; GISEL-NEXT: cmp x10, #74605; GISEL-NEXT: csel x12, x11, x12, eq4606; GISEL-NEXT: cmp x10, #84607; GISEL-NEXT: csel x12, x11, x12, eq4608; GISEL-NEXT: cmp x10, #94609; GISEL-NEXT: csel x12, x11, x12, eq4610; GISEL-NEXT: cmp x10, #104611; GISEL-NEXT: csel x12, x11, x12, eq4612; GISEL-NEXT: cmp x10, #114613; GISEL-NEXT: csel x12, x11, x12, eq4614; GISEL-NEXT: cmp x10, #124615; GISEL-NEXT: csel x12, x11, x12, eq4616; GISEL-NEXT: cmp x10, #134617; GISEL-NEXT: csel x12, x11, x12, eq4618; GISEL-NEXT: cmp x10, #144619; GISEL-NEXT: csel x12, x11, x12, eq4620; GISEL-NEXT: cmp x10, #154621; GISEL-NEXT: csel x12, x11, x12, eq4622; GISEL-NEXT: cmp x8, #04623; GISEL-NEXT: csel x13, x13, x12, eq4624; GISEL-NEXT: tst x8, #0x3f4625; GISEL-NEXT: csel x12, xzr, x14, eq4626; GISEL-NEXT: cmp x10, #04627; GISEL-NEXT: ldr x14, [sp, #264] ; 8-byte Reload4628; GISEL-NEXT: orr x12, x15, x124629; GISEL-NEXT: ldr x15, [sp, #136] ; 8-byte Reload4630; GISEL-NEXT: csel x12, x12, x11, eq4631; GISEL-NEXT: tst x8, #0x3f4632; GISEL-NEXT: stp x9, x13, [x14, #72]4633; GISEL-NEXT: csel x0, xzr, x17, eq4634; GISEL-NEXT: cmp x10, #14635; GISEL-NEXT: str x15, [x14]4636; GISEL-NEXT: orr x0, x1, x04637; GISEL-NEXT: ldr x15, [sp, #232] ; 8-byte Reload4638; GISEL-NEXT: stp x2, x6, [x14, #56]4639; GISEL-NEXT: csel x12, x0, x12, eq4640; GISEL-NEXT: tst x8, #0x3f4641; GISEL-NEXT: csel x0, xzr, x4, eq4642; GISEL-NEXT: cmp x10, #24643; GISEL-NEXT: str x15, [x14, #8]4644; GISEL-NEXT: orr x0, x5, x04645; GISEL-NEXT: ldr x15, [sp, #208] ; 8-byte Reload4646; GISEL-NEXT: csel x12, x0, x12, eq4647; GISEL-NEXT: tst x8, #0x3f4648; GISEL-NEXT: csel x0, xzr, x7, eq4649; GISEL-NEXT: cmp x10, #34650; GISEL-NEXT: str x15, [x14, #16]4651; GISEL-NEXT: orr x0, x19, x04652; GISEL-NEXT: ldr x15, [sp, #184] ; 8-byte Reload4653; GISEL-NEXT: csel x12, x0, x12, eq4654; GISEL-NEXT: tst x8, #0x3f4655; GISEL-NEXT: csel x0, xzr, x23, eq4656; GISEL-NEXT: cmp x10, #44657; GISEL-NEXT: str x15, [x14, #24]4658; GISEL-NEXT: orr x0, x27, x04659; GISEL-NEXT: ldr x15, [sp, #168] ; 8-byte Reload4660; GISEL-NEXT: csel x12, x0, x12, eq4661; GISEL-NEXT: cmp x10, #54662; GISEL-NEXT: csel x12, x11, x12, eq4663; GISEL-NEXT: cmp x10, #64664; GISEL-NEXT: str x15, [x14, #32]4665; GISEL-NEXT: csel x12, x11, x12, eq4666; GISEL-NEXT: cmp x10, #74667; GISEL-NEXT: ldr x15, [sp, #304] ; 8-byte Reload4668; GISEL-NEXT: csel x12, x11, x12, eq4669; GISEL-NEXT: cmp x10, #84670; GISEL-NEXT: csel x12, x11, x12, eq4671; GISEL-NEXT: cmp x10, #94672; GISEL-NEXT: stp x15, x20, [x14, #40]4673; GISEL-NEXT: csel x12, x11, x12, eq4674; GISEL-NEXT: cmp x10, #104675; GISEL-NEXT: csel x12, x11, x12, eq4676; GISEL-NEXT: cmp x10, #114677; GISEL-NEXT: csel x12, x11, x12, eq4678; GISEL-NEXT: cmp x10, #124679; GISEL-NEXT: csel x12, x11, x12, eq4680; GISEL-NEXT: cmp x10, #134681; GISEL-NEXT: csel x12, x11, x12, eq4682; GISEL-NEXT: cmp x10, #144683; GISEL-NEXT: csel x12, x11, x12, eq4684; GISEL-NEXT: cmp x10, #154685; GISEL-NEXT: csel x12, x11, x12, eq4686; GISEL-NEXT: cmp x8, #04687; GISEL-NEXT: csel x0, x16, x12, eq4688; GISEL-NEXT: tst x8, #0x3f4689; GISEL-NEXT: ldr x16, [sp, #224] ; 8-byte Reload4690; GISEL-NEXT: csel x12, xzr, x17, eq4691; GISEL-NEXT: cmp x10, #04692; GISEL-NEXT: orr x12, x1, x124693; GISEL-NEXT: csel x12, x12, x11, eq4694; GISEL-NEXT: tst x8, #0x3f4695; GISEL-NEXT: csel x3, xzr, x4, eq4696; GISEL-NEXT: cmp x10, #14697; GISEL-NEXT: orr x3, x5, x34698; GISEL-NEXT: csel x12, x3, x12, eq4699; GISEL-NEXT: tst x8, #0x3f4700; GISEL-NEXT: csel x3, xzr, x7, eq4701; GISEL-NEXT: cmp x10, #24702; GISEL-NEXT: orr x3, x19, x34703; GISEL-NEXT: csel x12, x3, x12, eq4704; GISEL-NEXT: tst x8, #0x3f4705; GISEL-NEXT: csel x3, xzr, x23, eq4706; GISEL-NEXT: cmp x10, #34707; GISEL-NEXT: orr x3, x27, x34708; GISEL-NEXT: ldp x24, x23, [sp, #368] ; 16-byte Folded Reload4709; GISEL-NEXT: csel x12, x3, x12, eq4710; GISEL-NEXT: cmp x10, #44711; GISEL-NEXT: csel x12, x11, x12, eq4712; GISEL-NEXT: cmp x10, #54713; GISEL-NEXT: csel x12, x11, x12, eq4714; GISEL-NEXT: cmp x10, #64715; GISEL-NEXT: csel x12, x11, x12, eq4716; GISEL-NEXT: cmp x10, #74717; GISEL-NEXT: csel x12, x11, x12, eq4718; GISEL-NEXT: cmp x10, #84719; GISEL-NEXT: csel x12, x11, x12, eq4720; GISEL-NEXT: cmp x10, #94721; GISEL-NEXT: csel x12, x11, x12, eq4722; GISEL-NEXT: cmp x10, #104723; GISEL-NEXT: csel x12, x11, x12, eq4724; GISEL-NEXT: cmp x10, #114725; GISEL-NEXT: csel x12, x11, x12, eq4726; GISEL-NEXT: cmp x10, #124727; GISEL-NEXT: csel x12, x11, x12, eq4728; GISEL-NEXT: cmp x10, #134729; GISEL-NEXT: csel x12, x11, x12, eq4730; GISEL-NEXT: cmp x10, #144731; GISEL-NEXT: csel x12, x11, x12, eq4732; GISEL-NEXT: cmp x10, #154733; GISEL-NEXT: csel x12, x11, x12, eq4734; GISEL-NEXT: cmp x8, #04735; GISEL-NEXT: csel x3, x16, x12, eq4736; GISEL-NEXT: tst x8, #0x3f4737; GISEL-NEXT: ldr x16, [sp, #240] ; 8-byte Reload4738; GISEL-NEXT: csel x12, xzr, x4, eq4739; GISEL-NEXT: cmp x10, #04740; GISEL-NEXT: stp x0, x3, [x14, #88]4741; GISEL-NEXT: orr x12, x5, x124742; GISEL-NEXT: csel x12, x12, x11, eq4743; GISEL-NEXT: tst x8, #0x3f4744; GISEL-NEXT: csel x4, xzr, x7, eq4745; GISEL-NEXT: cmp x10, #14746; GISEL-NEXT: orr x4, x19, x44747; GISEL-NEXT: csel x12, x4, x12, eq4748; GISEL-NEXT: tst x8, #0x3f4749; GISEL-NEXT: csel x4, xzr, x22, eq4750; GISEL-NEXT: cmp x10, #24751; GISEL-NEXT: orr x4, x27, x44752; GISEL-NEXT: csel x12, x4, x12, eq4753; GISEL-NEXT: cmp x10, #34754; GISEL-NEXT: csel x12, x11, x12, eq4755; GISEL-NEXT: cmp x10, #44756; GISEL-NEXT: csel x12, x11, x12, eq4757; GISEL-NEXT: cmp x10, #54758; GISEL-NEXT: csel x12, x11, x12, eq4759; GISEL-NEXT: cmp x10, #64760; GISEL-NEXT: csel x12, x11, x12, eq4761; GISEL-NEXT: cmp x10, #74762; GISEL-NEXT: csel x12, x11, x12, eq4763; GISEL-NEXT: cmp x10, #84764; GISEL-NEXT: csel x12, x11, x12, eq4765; GISEL-NEXT: cmp x10, #94766; GISEL-NEXT: csel x12, x11, x12, eq4767; GISEL-NEXT: cmp x10, #104768; GISEL-NEXT: csel x12, x11, x12, eq4769; GISEL-NEXT: cmp x10, #114770; GISEL-NEXT: csel x12, x11, x12, eq4771; GISEL-NEXT: cmp x10, #124772; GISEL-NEXT: csel x12, x11, x12, eq4773; GISEL-NEXT: cmp x10, #134774; GISEL-NEXT: csel x12, x11, x12, eq4775; GISEL-NEXT: cmp x10, #144776; GISEL-NEXT: csel x12, x11, x12, eq4777; GISEL-NEXT: cmp x10, #154778; GISEL-NEXT: csel x12, x11, x12, eq4779; GISEL-NEXT: cmp x8, #04780; GISEL-NEXT: csel x4, x16, x12, eq4781; GISEL-NEXT: tst x8, #0x3f4782; GISEL-NEXT: ldr x16, [sp, #248] ; 8-byte Reload4783; GISEL-NEXT: csel x12, xzr, x7, eq4784; GISEL-NEXT: cmp x10, #04785; GISEL-NEXT: orr x12, x19, x124786; GISEL-NEXT: ldp x20, x19, [sp, #400] ; 16-byte Folded Reload4787; GISEL-NEXT: csel x12, x12, x11, eq4788; GISEL-NEXT: tst x8, #0x3f4789; GISEL-NEXT: csel x17, xzr, x22, eq4790; GISEL-NEXT: cmp x10, #14791; GISEL-NEXT: orr x17, x27, x174792; GISEL-NEXT: csel x12, x17, x12, eq4793; GISEL-NEXT: cmp x10, #24794; GISEL-NEXT: csel x12, x11, x12, eq4795; GISEL-NEXT: cmp x10, #34796; GISEL-NEXT: csel x12, x11, x12, eq4797; GISEL-NEXT: cmp x10, #44798; GISEL-NEXT: csel x12, x11, x12, eq4799; GISEL-NEXT: cmp x10, #54800; GISEL-NEXT: csel x12, x11, x12, eq4801; GISEL-NEXT: cmp x10, #64802; GISEL-NEXT: csel x12, x11, x12, eq4803; GISEL-NEXT: cmp x10, #74804; GISEL-NEXT: csel x12, x11, x12, eq4805; GISEL-NEXT: cmp x10, #84806; GISEL-NEXT: csel x12, x11, x12, eq4807; GISEL-NEXT: cmp x10, #94808; GISEL-NEXT: csel x12, x11, x12, eq4809; GISEL-NEXT: cmp x10, #104810; GISEL-NEXT: csel x12, x11, x12, eq4811; GISEL-NEXT: cmp x10, #114812; GISEL-NEXT: csel x12, x11, x12, eq4813; GISEL-NEXT: cmp x10, #124814; GISEL-NEXT: csel x12, x11, x12, eq4815; GISEL-NEXT: cmp x10, #134816; GISEL-NEXT: csel x12, x11, x12, eq4817; GISEL-NEXT: cmp x10, #144818; GISEL-NEXT: csel x12, x11, x12, eq4819; GISEL-NEXT: cmp x10, #154820; GISEL-NEXT: csel x12, x11, x12, eq4821; GISEL-NEXT: cmp x8, #04822; GISEL-NEXT: csel x17, x16, x12, eq4823; GISEL-NEXT: tst x8, #0x3f4824; GISEL-NEXT: csel x12, xzr, x22, eq4825; GISEL-NEXT: cmp x10, #04826; GISEL-NEXT: stp x4, x17, [x14, #104]4827; GISEL-NEXT: orr x12, x27, x124828; GISEL-NEXT: ldp x22, x21, [sp, #384] ; 16-byte Folded Reload4829; GISEL-NEXT: csel x12, x12, x11, eq4830; GISEL-NEXT: cmp x10, #14831; GISEL-NEXT: csel x12, x11, x12, eq4832; GISEL-NEXT: cmp x10, #24833; GISEL-NEXT: csel x12, x11, x12, eq4834; GISEL-NEXT: cmp x10, #34835; GISEL-NEXT: csel x12, x11, x12, eq4836; GISEL-NEXT: cmp x10, #44837; GISEL-NEXT: csel x12, x11, x12, eq4838; GISEL-NEXT: cmp x10, #54839; GISEL-NEXT: csel x12, x11, x12, eq4840; GISEL-NEXT: cmp x10, #64841; GISEL-NEXT: csel x12, x11, x12, eq4842; GISEL-NEXT: cmp x10, #74843; GISEL-NEXT: csel x12, x11, x12, eq4844; GISEL-NEXT: cmp x10, #84845; GISEL-NEXT: csel x12, x11, x12, eq4846; GISEL-NEXT: cmp x10, #94847; GISEL-NEXT: csel x12, x11, x12, eq4848; GISEL-NEXT: cmp x10, #104849; GISEL-NEXT: csel x12, x11, x12, eq4850; GISEL-NEXT: cmp x10, #114851; GISEL-NEXT: csel x9, x11, x12, eq4852; GISEL-NEXT: cmp x10, #124853; GISEL-NEXT: csel x9, x11, x9, eq4854; GISEL-NEXT: cmp x10, #134855; GISEL-NEXT: csel x9, x11, x9, eq4856; GISEL-NEXT: cmp x10, #144857; GISEL-NEXT: csel x9, x11, x9, eq4858; GISEL-NEXT: cmp x10, #154859; GISEL-NEXT: csel x9, x11, x9, eq4860; GISEL-NEXT: cmp x8, #04861; GISEL-NEXT: ldr x8, [sp, #256] ; 8-byte Reload4862; GISEL-NEXT: ldp x28, x27, [sp, #336] ; 16-byte Folded Reload4863; GISEL-NEXT: csel x8, x8, x9, eq4864; GISEL-NEXT: str x8, [x14, #120]4865; GISEL-NEXT: add sp, sp, #4324866; GISEL-NEXT: ret4867entry:4868 %input_val = load i1024, ptr %input, align 1284869 %shift_ext = zext i32 %shift to i10244870 %shifted = ashr i1024 %input_val, %shift_ext4871 store i1024 %shifted, ptr %result, align 1284872 ret void4873}4874 4875 4876; Constant shift tests.4877 4878; Zero shift tests4879define void @test_shl_i512_const_zero(ptr %result, ptr %input) {4880; SDAG-LABEL: test_shl_i512_const_zero:4881; SDAG: ; %bb.0: ; %entry4882; SDAG-NEXT: ldp x9, x8, [x1, #48]4883; SDAG-NEXT: ldr q0, [x1]4884; SDAG-NEXT: ldp x11, x10, [x1, #16]4885; SDAG-NEXT: ldp x13, x12, [x1, #32]4886; SDAG-NEXT: str q0, [x0]4887; SDAG-NEXT: stp x9, x8, [x0, #48]4888; SDAG-NEXT: stp x11, x10, [x0, #16]4889; SDAG-NEXT: stp x13, x12, [x0, #32]4890; SDAG-NEXT: ret4891;4892; GISEL-LABEL: test_shl_i512_const_zero:4893; GISEL: ; %bb.0: ; %entry4894; GISEL-NEXT: ldp x8, x9, [x1]4895; GISEL-NEXT: ldp x10, x11, [x1, #16]4896; GISEL-NEXT: ldp x12, x13, [x1, #32]4897; GISEL-NEXT: ldp x14, x15, [x1, #48]4898; GISEL-NEXT: stp x8, x9, [x0]4899; GISEL-NEXT: stp x10, x11, [x0, #16]4900; GISEL-NEXT: stp x12, x13, [x0, #32]4901; GISEL-NEXT: stp x14, x15, [x0, #48]4902; GISEL-NEXT: ret4903entry:4904 %input_val = load i512, ptr %input, align 644905 %shifted = shl i512 %input_val, 04906 store i512 %shifted, ptr %result, align 644907 ret void4908}4909 4910define void @test_lshr_i512_const_zero(ptr %result, ptr %input) {4911; SDAG-LABEL: test_lshr_i512_const_zero:4912; SDAG: ; %bb.0: ; %entry4913; SDAG-NEXT: ldp x9, x8, [x1, #48]4914; SDAG-NEXT: ldr q0, [x1]4915; SDAG-NEXT: ldp x11, x10, [x1, #16]4916; SDAG-NEXT: ldp x13, x12, [x1, #32]4917; SDAG-NEXT: str q0, [x0]4918; SDAG-NEXT: stp x9, x8, [x0, #48]4919; SDAG-NEXT: stp x11, x10, [x0, #16]4920; SDAG-NEXT: stp x13, x12, [x0, #32]4921; SDAG-NEXT: ret4922;4923; GISEL-LABEL: test_lshr_i512_const_zero:4924; GISEL: ; %bb.0: ; %entry4925; GISEL-NEXT: ldp x8, x9, [x1]4926; GISEL-NEXT: ldp x10, x11, [x1, #16]4927; GISEL-NEXT: ldp x12, x13, [x1, #32]4928; GISEL-NEXT: ldp x14, x15, [x1, #48]4929; GISEL-NEXT: stp x8, x9, [x0]4930; GISEL-NEXT: stp x10, x11, [x0, #16]4931; GISEL-NEXT: stp x12, x13, [x0, #32]4932; GISEL-NEXT: stp x14, x15, [x0, #48]4933; GISEL-NEXT: ret4934entry:4935 %input_val = load i512, ptr %input, align 644936 %shifted = lshr i512 %input_val, 04937 store i512 %shifted, ptr %result, align 644938 ret void4939}4940 4941define void @test_ashr_i512_const_zero(ptr %result, ptr %input) {4942; SDAG-LABEL: test_ashr_i512_const_zero:4943; SDAG: ; %bb.0: ; %entry4944; SDAG-NEXT: ldp x9, x8, [x1, #48]4945; SDAG-NEXT: ldr q0, [x1]4946; SDAG-NEXT: ldp x11, x10, [x1, #16]4947; SDAG-NEXT: ldp x13, x12, [x1, #32]4948; SDAG-NEXT: str q0, [x0]4949; SDAG-NEXT: stp x9, x8, [x0, #48]4950; SDAG-NEXT: stp x11, x10, [x0, #16]4951; SDAG-NEXT: stp x13, x12, [x0, #32]4952; SDAG-NEXT: ret4953;4954; GISEL-LABEL: test_ashr_i512_const_zero:4955; GISEL: ; %bb.0: ; %entry4956; GISEL-NEXT: ldp x8, x9, [x1]4957; GISEL-NEXT: ldp x10, x11, [x1, #16]4958; GISEL-NEXT: ldp x12, x13, [x1, #32]4959; GISEL-NEXT: ldp x14, x15, [x1, #48]4960; GISEL-NEXT: stp x8, x9, [x0]4961; GISEL-NEXT: stp x10, x11, [x0, #16]4962; GISEL-NEXT: stp x12, x13, [x0, #32]4963; GISEL-NEXT: stp x14, x15, [x0, #48]4964; GISEL-NEXT: ret4965entry:4966 %input_val = load i512, ptr %input, align 644967 %shifted = ashr i512 %input_val, 04968 store i512 %shifted, ptr %result, align 644969 ret void4970}4971 4972; Word-aligned constant shifts (32-bit multiples for i512 -> i32 narrowing)4973define void @test_shl_i512_const_32(ptr %result, ptr %input) {4974; SDAG-LABEL: test_shl_i512_const_32:4975; SDAG: ; %bb.0: ; %entry4976; SDAG-NEXT: ldp x12, x13, [x1, #16]4977; SDAG-NEXT: ldur x8, [x1, #36]4978; SDAG-NEXT: ldp x14, x15, [x1]4979; SDAG-NEXT: ldur x9, [x1, #28]4980; SDAG-NEXT: ldur x10, [x1, #44]4981; SDAG-NEXT: ldur x11, [x1, #52]4982; SDAG-NEXT: stp x9, x8, [x0, #32]4983; SDAG-NEXT: extr x9, x13, x12, #324984; SDAG-NEXT: stp x10, x11, [x0, #48]4985; SDAG-NEXT: extr x10, x12, x15, #324986; SDAG-NEXT: lsl x8, x14, #324987; SDAG-NEXT: stp x10, x9, [x0, #16]4988; SDAG-NEXT: extr x10, x15, x14, #324989; SDAG-NEXT: stp x8, x10, [x0]4990; SDAG-NEXT: ret4991;4992; GISEL-LABEL: test_shl_i512_const_32:4993; GISEL: ; %bb.0: ; %entry4994; GISEL-NEXT: ldp x8, x9, [x1]4995; GISEL-NEXT: ldp x10, x11, [x1, #16]4996; GISEL-NEXT: ldp x13, x14, [x1, #32]4997; GISEL-NEXT: lsl x12, x8, #324998; GISEL-NEXT: extr x8, x9, x8, #324999; GISEL-NEXT: extr x9, x10, x9, #325000; GISEL-NEXT: extr x10, x11, x10, #325001; GISEL-NEXT: ldp x15, x16, [x1, #48]5002; GISEL-NEXT: stp x12, x8, [x0]5003; GISEL-NEXT: extr x8, x13, x11, #325004; GISEL-NEXT: stp x9, x10, [x0, #16]5005; GISEL-NEXT: extr x9, x14, x13, #325006; GISEL-NEXT: extr x10, x15, x14, #325007; GISEL-NEXT: stp x8, x9, [x0, #32]5008; GISEL-NEXT: extr x8, x16, x15, #325009; GISEL-NEXT: stp x10, x8, [x0, #48]5010; GISEL-NEXT: ret5011entry:5012 %input_val = load i512, ptr %input, align 645013 %shifted = shl i512 %input_val, 325014 store i512 %shifted, ptr %result, align 645015 ret void5016}5017 5018define void @test_lshr_i512_const_32(ptr %result, ptr %input) {5019; SDAG-LABEL: test_lshr_i512_const_32:5020; SDAG: ; %bb.0: ; %entry5021; SDAG-NEXT: ldp x11, x10, [x1, #48]5022; SDAG-NEXT: ldur x8, [x1, #12]5023; SDAG-NEXT: ldp x15, x14, [x1, #32]5024; SDAG-NEXT: ldur x9, [x1, #4]5025; SDAG-NEXT: ldp x12, x13, [x1, #16]5026; SDAG-NEXT: extr x16, x10, x11, #325027; SDAG-NEXT: stp x9, x8, [x0]5028; SDAG-NEXT: lsr x9, x10, #325029; SDAG-NEXT: extr x8, x14, x15, #325030; SDAG-NEXT: extr x10, x11, x14, #325031; SDAG-NEXT: stp x16, x9, [x0, #48]5032; SDAG-NEXT: extr x9, x13, x12, #325033; SDAG-NEXT: stp x8, x10, [x0, #32]5034; SDAG-NEXT: extr x8, x15, x13, #325035; SDAG-NEXT: stp x9, x8, [x0, #16]5036; SDAG-NEXT: ret5037;5038; GISEL-LABEL: test_lshr_i512_const_32:5039; GISEL: ; %bb.0: ; %entry5040; GISEL-NEXT: ldp x8, x9, [x1]5041; GISEL-NEXT: ldp x10, x11, [x1, #16]5042; GISEL-NEXT: ldp x12, x13, [x1, #32]5043; GISEL-NEXT: extr x8, x9, x8, #325044; GISEL-NEXT: ldp x14, x15, [x1, #48]5045; GISEL-NEXT: extr x9, x10, x9, #325046; GISEL-NEXT: extr x10, x11, x10, #325047; GISEL-NEXT: stp x8, x9, [x0]5048; GISEL-NEXT: extr x8, x12, x11, #325049; GISEL-NEXT: extr x9, x13, x12, #325050; GISEL-NEXT: stp x10, x8, [x0, #16]5051; GISEL-NEXT: extr x10, x14, x13, #325052; GISEL-NEXT: extr x8, x15, x14, #325053; GISEL-NEXT: stp x9, x10, [x0, #32]5054; GISEL-NEXT: lsr x9, x15, #325055; GISEL-NEXT: stp x8, x9, [x0, #48]5056; GISEL-NEXT: ret5057entry:5058 %input_val = load i512, ptr %input, align 645059 %shifted = lshr i512 %input_val, 325060 store i512 %shifted, ptr %result, align 645061 ret void5062}5063 5064define void @test_ashr_i512_const_32(ptr %result, ptr %input) {5065; SDAG-LABEL: test_ashr_i512_const_32:5066; SDAG: ; %bb.0: ; %entry5067; SDAG-NEXT: ldp x11, x10, [x1, #48]5068; SDAG-NEXT: ldur x8, [x1, #12]5069; SDAG-NEXT: ldp x15, x14, [x1, #32]5070; SDAG-NEXT: ldur x9, [x1, #4]5071; SDAG-NEXT: ldp x12, x13, [x1, #16]5072; SDAG-NEXT: extr x16, x10, x11, #325073; SDAG-NEXT: stp x9, x8, [x0]5074; SDAG-NEXT: asr x9, x10, #325075; SDAG-NEXT: extr x8, x14, x15, #325076; SDAG-NEXT: extr x10, x11, x14, #325077; SDAG-NEXT: stp x16, x9, [x0, #48]5078; SDAG-NEXT: extr x9, x13, x12, #325079; SDAG-NEXT: stp x8, x10, [x0, #32]5080; SDAG-NEXT: extr x8, x15, x13, #325081; SDAG-NEXT: stp x9, x8, [x0, #16]5082; SDAG-NEXT: ret5083;5084; GISEL-LABEL: test_ashr_i512_const_32:5085; GISEL: ; %bb.0: ; %entry5086; GISEL-NEXT: ldp x8, x9, [x1]5087; GISEL-NEXT: ldp x10, x11, [x1, #16]5088; GISEL-NEXT: ldp x12, x13, [x1, #48]5089; GISEL-NEXT: extr x8, x9, x8, #325090; GISEL-NEXT: ldp x14, x15, [x1, #32]5091; GISEL-NEXT: extr x9, x10, x9, #325092; GISEL-NEXT: extr x10, x11, x10, #325093; GISEL-NEXT: stp x8, x9, [x0]5094; GISEL-NEXT: asr x8, x13, #635095; GISEL-NEXT: extr x11, x14, x11, #325096; GISEL-NEXT: extr x9, x15, x14, #325097; GISEL-NEXT: lsl x8, x8, #325098; GISEL-NEXT: stp x10, x11, [x0, #16]5099; GISEL-NEXT: extr x10, x12, x15, #325100; GISEL-NEXT: extr x11, x13, x12, #325101; GISEL-NEXT: orr x8, x8, x13, asr #325102; GISEL-NEXT: stp x9, x10, [x0, #32]5103; GISEL-NEXT: stp x11, x8, [x0, #48]5104; GISEL-NEXT: ret5105entry:5106 %input_val = load i512, ptr %input, align 645107 %shifted = ashr i512 %input_val, 325108 store i512 %shifted, ptr %result, align 645109 ret void5110}5111 5112define void @test_shl_i512_const_64(ptr %result, ptr %input) {5113; SDAG-LABEL: test_shl_i512_const_64:5114; SDAG: ; %bb.0: ; %entry5115; SDAG-NEXT: ldp x10, x8, [x1, #40]5116; SDAG-NEXT: ldr q0, [x1]5117; SDAG-NEXT: ldp x12, x9, [x1, #24]5118; SDAG-NEXT: ldr x11, [x1, #16]5119; SDAG-NEXT: str xzr, [x0]5120; SDAG-NEXT: stp x10, x8, [x0, #48]5121; SDAG-NEXT: stp x12, x9, [x0, #32]5122; SDAG-NEXT: str x11, [x0, #24]5123; SDAG-NEXT: stur q0, [x0, #8]5124; SDAG-NEXT: ret5125;5126; GISEL-LABEL: test_shl_i512_const_64:5127; GISEL: ; %bb.0: ; %entry5128; GISEL-NEXT: ldp x8, x9, [x1]5129; GISEL-NEXT: ldr x14, [x1, #48]5130; GISEL-NEXT: ldp x10, x11, [x1, #16]5131; GISEL-NEXT: ldp x12, x13, [x1, #32]5132; GISEL-NEXT: stp xzr, x8, [x0]5133; GISEL-NEXT: stp x9, x10, [x0, #16]5134; GISEL-NEXT: stp x11, x12, [x0, #32]5135; GISEL-NEXT: stp x13, x14, [x0, #48]5136; GISEL-NEXT: ret5137entry:5138 %input_val = load i512, ptr %input, align 645139 %shifted = shl i512 %input_val, 645140 store i512 %shifted, ptr %result, align 645141 ret void5142}5143 5144define void @test_lshr_i512_const_64(ptr %result, ptr %input) {5145; SDAG-LABEL: test_lshr_i512_const_64:5146; SDAG: ; %bb.0: ; %entry5147; SDAG-NEXT: ldp x11, x8, [x1, #48]5148; SDAG-NEXT: ldur q0, [x1, #8]5149; SDAG-NEXT: ldp x10, x9, [x1, #24]5150; SDAG-NEXT: ldr x12, [x1, #40]5151; SDAG-NEXT: str q0, [x0]5152; SDAG-NEXT: stp x8, xzr, [x0, #48]5153; SDAG-NEXT: stp x12, x11, [x0, #32]5154; SDAG-NEXT: stp x10, x9, [x0, #16]5155; SDAG-NEXT: ret5156;5157; GISEL-LABEL: test_lshr_i512_const_64:5158; GISEL: ; %bb.0: ; %entry5159; GISEL-NEXT: ldp x8, x9, [x1, #8]5160; GISEL-NEXT: ldr x14, [x1, #56]5161; GISEL-NEXT: ldp x10, x11, [x1, #24]5162; GISEL-NEXT: ldp x12, x13, [x1, #40]5163; GISEL-NEXT: stp x14, xzr, [x0, #48]5164; GISEL-NEXT: stp x8, x9, [x0]5165; GISEL-NEXT: stp x10, x11, [x0, #16]5166; GISEL-NEXT: stp x12, x13, [x0, #32]5167; GISEL-NEXT: ret5168entry:5169 %input_val = load i512, ptr %input, align 645170 %shifted = lshr i512 %input_val, 645171 store i512 %shifted, ptr %result, align 645172 ret void5173}5174 5175define void @test_ashr_i512_const_64(ptr %result, ptr %input) {5176; SDAG-LABEL: test_ashr_i512_const_64:5177; SDAG: ; %bb.0: ; %entry5178; SDAG-NEXT: ldp x8, x9, [x1, #40]5179; SDAG-NEXT: ldr x12, [x1, #56]5180; SDAG-NEXT: ldp x11, x10, [x1, #24]5181; SDAG-NEXT: ldur q0, [x1, #8]5182; SDAG-NEXT: stp x8, x9, [x0, #32]5183; SDAG-NEXT: asr x8, x12, #635184; SDAG-NEXT: stp x11, x10, [x0, #16]5185; SDAG-NEXT: str q0, [x0]5186; SDAG-NEXT: stp x12, x8, [x0, #48]5187; SDAG-NEXT: ret5188;5189; GISEL-LABEL: test_ashr_i512_const_64:5190; GISEL: ; %bb.0: ; %entry5191; GISEL-NEXT: ldp x8, x9, [x1, #8]5192; GISEL-NEXT: ldr x14, [x1, #56]5193; GISEL-NEXT: ldp x10, x11, [x1, #24]5194; GISEL-NEXT: ldp x12, x13, [x1, #40]5195; GISEL-NEXT: stp x8, x9, [x0]5196; GISEL-NEXT: asr x8, x14, #635197; GISEL-NEXT: stp x10, x11, [x0, #16]5198; GISEL-NEXT: stp x12, x13, [x0, #32]5199; GISEL-NEXT: stp x14, x8, [x0, #48]5200; GISEL-NEXT: ret5201entry:5202 %input_val = load i512, ptr %input, align 645203 %shifted = ashr i512 %input_val, 645204 store i512 %shifted, ptr %result, align 645205 ret void5206}5207 5208define void @test_shl_i512_const_96(ptr %result, ptr %input) {5209; SDAG-LABEL: test_shl_i512_const_96:5210; SDAG: ; %bb.0: ; %entry5211; SDAG-NEXT: ldp x12, x11, [x1, #16]5212; SDAG-NEXT: ldur x9, [x1, #36]5213; SDAG-NEXT: ldur x10, [x1, #44]5214; SDAG-NEXT: ldur x8, [x1, #28]5215; SDAG-NEXT: ldp x13, x14, [x1]5216; SDAG-NEXT: stp x9, x10, [x0, #48]5217; SDAG-NEXT: extr x9, x11, x12, #325218; SDAG-NEXT: extr x10, x14, x13, #325219; SDAG-NEXT: stp x9, x8, [x0, #32]5220; SDAG-NEXT: extr x8, x12, x14, #325221; SDAG-NEXT: lsl x9, x13, #325222; SDAG-NEXT: stp x10, x8, [x0, #16]5223; SDAG-NEXT: stp xzr, x9, [x0]5224; SDAG-NEXT: ret5225;5226; GISEL-LABEL: test_shl_i512_const_96:5227; GISEL: ; %bb.0: ; %entry5228; GISEL-NEXT: ldp x8, x9, [x1]5229; GISEL-NEXT: ldr x15, [x1, #48]5230; GISEL-NEXT: ldp x10, x11, [x1, #16]5231; GISEL-NEXT: ldp x12, x13, [x1, #32]5232; GISEL-NEXT: lsl x14, x8, #325233; GISEL-NEXT: extr x8, x9, x8, #325234; GISEL-NEXT: extr x9, x10, x9, #325235; GISEL-NEXT: extr x10, x11, x10, #325236; GISEL-NEXT: stp xzr, x14, [x0]5237; GISEL-NEXT: stp x8, x9, [x0, #16]5238; GISEL-NEXT: extr x8, x12, x11, #325239; GISEL-NEXT: extr x9, x13, x12, #325240; GISEL-NEXT: stp x10, x8, [x0, #32]5241; GISEL-NEXT: extr x10, x15, x13, #325242; GISEL-NEXT: stp x9, x10, [x0, #48]5243; GISEL-NEXT: ret5244entry:5245 %input_val = load i512, ptr %input, align 645246 %shifted = shl i512 %input_val, 965247 store i512 %shifted, ptr %result, align 645248 ret void5249}5250 5251define void @test_lshr_i512_const_96(ptr %result, ptr %input) {5252; SDAG-LABEL: test_lshr_i512_const_96:5253; SDAG: ; %bb.0: ; %entry5254; SDAG-NEXT: ldp x9, x10, [x1, #48]5255; SDAG-NEXT: ldur x8, [x1, #20]5256; SDAG-NEXT: ldp x13, x14, [x1, #32]5257; SDAG-NEXT: ldur x11, [x1, #12]5258; SDAG-NEXT: ldur x12, [x1, #28]5259; SDAG-NEXT: lsr x15, x10, #325260; SDAG-NEXT: stp x11, x8, [x0]5261; SDAG-NEXT: extr x8, x10, x9, #325262; SDAG-NEXT: extr x11, x9, x14, #325263; SDAG-NEXT: extr x9, x14, x13, #325264; SDAG-NEXT: stp x15, xzr, [x0, #48]5265; SDAG-NEXT: stp x11, x8, [x0, #32]5266; SDAG-NEXT: stp x12, x9, [x0, #16]5267; SDAG-NEXT: ret5268;5269; GISEL-LABEL: test_lshr_i512_const_96:5270; GISEL: ; %bb.0: ; %entry5271; GISEL-NEXT: ldp x8, x9, [x1, #8]5272; GISEL-NEXT: ldr x14, [x1, #56]5273; GISEL-NEXT: ldp x10, x11, [x1, #24]5274; GISEL-NEXT: ldp x12, x13, [x1, #40]5275; GISEL-NEXT: extr x8, x9, x8, #325276; GISEL-NEXT: extr x9, x10, x9, #325277; GISEL-NEXT: extr x10, x11, x10, #325278; GISEL-NEXT: stp x8, x9, [x0]5279; GISEL-NEXT: extr x8, x12, x11, #325280; GISEL-NEXT: extr x9, x13, x12, #325281; GISEL-NEXT: stp x10, x8, [x0, #16]5282; GISEL-NEXT: extr x10, x14, x13, #325283; GISEL-NEXT: lsr x8, x14, #325284; GISEL-NEXT: stp x9, x10, [x0, #32]5285; GISEL-NEXT: stp x8, xzr, [x0, #48]5286; GISEL-NEXT: ret5287entry:5288 %input_val = load i512, ptr %input, align 645289 %shifted = lshr i512 %input_val, 965290 store i512 %shifted, ptr %result, align 645291 ret void5292}5293 5294define void @test_ashr_i512_const_96(ptr %result, ptr %input) {5295; SDAG-LABEL: test_ashr_i512_const_96:5296; SDAG: ; %bb.0: ; %entry5297; SDAG-NEXT: ldp x9, x10, [x1, #48]5298; SDAG-NEXT: ldur x8, [x1, #12]5299; SDAG-NEXT: ldur x11, [x1, #20]5300; SDAG-NEXT: ldur x12, [x1, #28]5301; SDAG-NEXT: ldp x13, x14, [x1, #32]5302; SDAG-NEXT: asr x15, x10, #325303; SDAG-NEXT: stp x8, x11, [x0]5304; SDAG-NEXT: asr x8, x10, #635305; SDAG-NEXT: extr x11, x9, x14, #325306; SDAG-NEXT: stp x15, x8, [x0, #48]5307; SDAG-NEXT: extr x9, x10, x9, #325308; SDAG-NEXT: extr x8, x14, x13, #325309; SDAG-NEXT: stp x11, x9, [x0, #32]5310; SDAG-NEXT: stp x12, x8, [x0, #16]5311; SDAG-NEXT: ret5312;5313; GISEL-LABEL: test_ashr_i512_const_96:5314; GISEL: ; %bb.0: ; %entry5315; GISEL-NEXT: ldp x8, x9, [x1, #8]5316; GISEL-NEXT: ldr x13, [x1, #40]5317; GISEL-NEXT: ldp x10, x11, [x1, #24]5318; GISEL-NEXT: ldp x14, x12, [x1, #48]5319; GISEL-NEXT: extr x8, x9, x8, #325320; GISEL-NEXT: extr x9, x10, x9, #325321; GISEL-NEXT: extr x10, x11, x10, #325322; GISEL-NEXT: asr x15, x12, #635323; GISEL-NEXT: stp x8, x9, [x0]5324; GISEL-NEXT: extr x8, x13, x11, #325325; GISEL-NEXT: extr x9, x14, x13, #325326; GISEL-NEXT: lsl x11, x15, #325327; GISEL-NEXT: stp x10, x8, [x0, #16]5328; GISEL-NEXT: extr x10, x12, x14, #325329; GISEL-NEXT: orr x8, x11, x12, asr #325330; GISEL-NEXT: stp x9, x10, [x0, #32]5331; GISEL-NEXT: stp x8, x15, [x0, #48]5332; GISEL-NEXT: ret5333entry:5334 %input_val = load i512, ptr %input, align 645335 %shifted = ashr i512 %input_val, 965336 store i512 %shifted, ptr %result, align 645337 ret void5338}5339 5340; Bit-only shifts (< 64 bits)5341define void @test_shl_i512_const_1(ptr %result, ptr %input) {5342; SDAG-LABEL: test_shl_i512_const_1:5343; SDAG: ; %bb.0: ; %entry5344; SDAG-NEXT: ldp x8, x9, [x1, #40]5345; SDAG-NEXT: ldr x10, [x1, #56]5346; SDAG-NEXT: ldp x13, x11, [x1, #24]5347; SDAG-NEXT: ldp x15, x14, [x1, #8]5348; SDAG-NEXT: extr x12, x9, x8, #635349; SDAG-NEXT: extr x9, x10, x9, #635350; SDAG-NEXT: ldr x10, [x1]5351; SDAG-NEXT: extr x16, x11, x13, #635352; SDAG-NEXT: extr x8, x8, x11, #635353; SDAG-NEXT: stp x12, x9, [x0, #48]5354; SDAG-NEXT: extr x9, x14, x15, #635355; SDAG-NEXT: extr x11, x13, x14, #635356; SDAG-NEXT: stp x16, x8, [x0, #32]5357; SDAG-NEXT: lsl x8, x10, #15358; SDAG-NEXT: stp x9, x11, [x0, #16]5359; SDAG-NEXT: extr x9, x15, x10, #635360; SDAG-NEXT: stp x8, x9, [x0]5361; SDAG-NEXT: ret5362;5363; GISEL-LABEL: test_shl_i512_const_1:5364; GISEL: ; %bb.0: ; %entry5365; GISEL-NEXT: ldp x8, x9, [x1]5366; GISEL-NEXT: ldp x10, x11, [x1, #16]5367; GISEL-NEXT: ldp x13, x14, [x1, #32]5368; GISEL-NEXT: lsl x12, x8, #15369; GISEL-NEXT: extr x8, x9, x8, #635370; GISEL-NEXT: extr x9, x10, x9, #635371; GISEL-NEXT: extr x10, x11, x10, #635372; GISEL-NEXT: ldp x15, x16, [x1, #48]5373; GISEL-NEXT: stp x12, x8, [x0]5374; GISEL-NEXT: extr x8, x13, x11, #635375; GISEL-NEXT: stp x9, x10, [x0, #16]5376; GISEL-NEXT: extr x9, x14, x13, #635377; GISEL-NEXT: extr x10, x15, x14, #635378; GISEL-NEXT: stp x8, x9, [x0, #32]5379; GISEL-NEXT: extr x8, x16, x15, #635380; GISEL-NEXT: stp x10, x8, [x0, #48]5381; GISEL-NEXT: ret5382entry:5383 %input_val = load i512, ptr %input, align 645384 %shifted = shl i512 %input_val, 15385 store i512 %shifted, ptr %result, align 645386 ret void5387}5388 5389define void @test_lshr_i512_const_1(ptr %result, ptr %input) {5390; SDAG-LABEL: test_lshr_i512_const_1:5391; SDAG: ; %bb.0: ; %entry5392; SDAG-NEXT: ldp x9, x8, [x1, #48]5393; SDAG-NEXT: ldp x11, x10, [x1, #32]5394; SDAG-NEXT: ldp x16, x15, [x1, #16]5395; SDAG-NEXT: extr x12, x8, x9, #15396; SDAG-NEXT: lsr x8, x8, #15397; SDAG-NEXT: ldp x13, x14, [x1]5398; SDAG-NEXT: extr x9, x9, x10, #15399; SDAG-NEXT: stp x12, x8, [x0, #48]5400; SDAG-NEXT: extr x12, x10, x11, #15401; SDAG-NEXT: extr x8, x15, x16, #15402; SDAG-NEXT: extr x10, x11, x15, #15403; SDAG-NEXT: stp x12, x9, [x0, #32]5404; SDAG-NEXT: extr x9, x14, x13, #15405; SDAG-NEXT: stp x8, x10, [x0, #16]5406; SDAG-NEXT: extr x8, x16, x14, #15407; SDAG-NEXT: stp x9, x8, [x0]5408; SDAG-NEXT: ret5409;5410; GISEL-LABEL: test_lshr_i512_const_1:5411; GISEL: ; %bb.0: ; %entry5412; GISEL-NEXT: ldp x8, x9, [x1]5413; GISEL-NEXT: ldp x10, x11, [x1, #16]5414; GISEL-NEXT: ldp x12, x13, [x1, #32]5415; GISEL-NEXT: extr x8, x9, x8, #15416; GISEL-NEXT: ldp x14, x15, [x1, #48]5417; GISEL-NEXT: extr x9, x10, x9, #15418; GISEL-NEXT: extr x10, x11, x10, #15419; GISEL-NEXT: stp x8, x9, [x0]5420; GISEL-NEXT: extr x8, x12, x11, #15421; GISEL-NEXT: extr x9, x13, x12, #15422; GISEL-NEXT: stp x10, x8, [x0, #16]5423; GISEL-NEXT: extr x10, x14, x13, #15424; GISEL-NEXT: extr x8, x15, x14, #15425; GISEL-NEXT: stp x9, x10, [x0, #32]5426; GISEL-NEXT: lsr x9, x15, #15427; GISEL-NEXT: stp x8, x9, [x0, #48]5428; GISEL-NEXT: ret5429entry:5430 %input_val = load i512, ptr %input, align 645431 %shifted = lshr i512 %input_val, 15432 store i512 %shifted, ptr %result, align 645433 ret void5434}5435 5436define void @test_ashr_i512_const_1(ptr %result, ptr %input) {5437; SDAG-LABEL: test_ashr_i512_const_1:5438; SDAG: ; %bb.0: ; %entry5439; SDAG-NEXT: ldp x9, x8, [x1, #48]5440; SDAG-NEXT: ldp x11, x10, [x1, #32]5441; SDAG-NEXT: ldp x16, x15, [x1, #16]5442; SDAG-NEXT: extr x12, x8, x9, #15443; SDAG-NEXT: asr x8, x8, #15444; SDAG-NEXT: ldp x13, x14, [x1]5445; SDAG-NEXT: extr x9, x9, x10, #15446; SDAG-NEXT: stp x12, x8, [x0, #48]5447; SDAG-NEXT: extr x12, x10, x11, #15448; SDAG-NEXT: extr x8, x15, x16, #15449; SDAG-NEXT: extr x10, x11, x15, #15450; SDAG-NEXT: stp x12, x9, [x0, #32]5451; SDAG-NEXT: extr x9, x14, x13, #15452; SDAG-NEXT: stp x8, x10, [x0, #16]5453; SDAG-NEXT: extr x8, x16, x14, #15454; SDAG-NEXT: stp x9, x8, [x0]5455; SDAG-NEXT: ret5456;5457; GISEL-LABEL: test_ashr_i512_const_1:5458; GISEL: ; %bb.0: ; %entry5459; GISEL-NEXT: ldp x8, x9, [x1]5460; GISEL-NEXT: ldp x10, x11, [x1, #16]5461; GISEL-NEXT: ldp x12, x13, [x1, #48]5462; GISEL-NEXT: extr x8, x9, x8, #15463; GISEL-NEXT: ldp x14, x15, [x1, #32]5464; GISEL-NEXT: extr x9, x10, x9, #15465; GISEL-NEXT: extr x10, x11, x10, #15466; GISEL-NEXT: stp x8, x9, [x0]5467; GISEL-NEXT: asr x8, x13, #635468; GISEL-NEXT: extr x11, x14, x11, #15469; GISEL-NEXT: extr x9, x15, x14, #15470; GISEL-NEXT: lsl x8, x8, #635471; GISEL-NEXT: stp x10, x11, [x0, #16]5472; GISEL-NEXT: extr x10, x12, x15, #15473; GISEL-NEXT: extr x11, x13, x12, #15474; GISEL-NEXT: orr x8, x8, x13, asr #15475; GISEL-NEXT: stp x9, x10, [x0, #32]5476; GISEL-NEXT: stp x11, x8, [x0, #48]5477; GISEL-NEXT: ret5478entry:5479 %input_val = load i512, ptr %input, align 645480 %shifted = ashr i512 %input_val, 15481 store i512 %shifted, ptr %result, align 645482 ret void5483}5484 5485define void @test_shl_i512_const_15(ptr %result, ptr %input) {5486; SDAG-LABEL: test_shl_i512_const_15:5487; SDAG: ; %bb.0: ; %entry5488; SDAG-NEXT: ldp x8, x9, [x1, #40]5489; SDAG-NEXT: ldr x10, [x1, #56]5490; SDAG-NEXT: ldp x13, x11, [x1, #24]5491; SDAG-NEXT: ldp x15, x14, [x1, #8]5492; SDAG-NEXT: extr x12, x9, x8, #495493; SDAG-NEXT: extr x9, x10, x9, #495494; SDAG-NEXT: ldr x10, [x1]5495; SDAG-NEXT: extr x16, x11, x13, #495496; SDAG-NEXT: extr x8, x8, x11, #495497; SDAG-NEXT: stp x12, x9, [x0, #48]5498; SDAG-NEXT: extr x9, x14, x15, #495499; SDAG-NEXT: extr x11, x13, x14, #495500; SDAG-NEXT: stp x16, x8, [x0, #32]5501; SDAG-NEXT: lsl x8, x10, #155502; SDAG-NEXT: stp x9, x11, [x0, #16]5503; SDAG-NEXT: extr x9, x15, x10, #495504; SDAG-NEXT: stp x8, x9, [x0]5505; SDAG-NEXT: ret5506;5507; GISEL-LABEL: test_shl_i512_const_15:5508; GISEL: ; %bb.0: ; %entry5509; GISEL-NEXT: ldp x8, x9, [x1]5510; GISEL-NEXT: ldp x10, x11, [x1, #16]5511; GISEL-NEXT: ldp x13, x14, [x1, #32]5512; GISEL-NEXT: lsl x12, x8, #155513; GISEL-NEXT: extr x8, x9, x8, #495514; GISEL-NEXT: extr x9, x10, x9, #495515; GISEL-NEXT: extr x10, x11, x10, #495516; GISEL-NEXT: ldp x15, x16, [x1, #48]5517; GISEL-NEXT: stp x12, x8, [x0]5518; GISEL-NEXT: extr x8, x13, x11, #495519; GISEL-NEXT: stp x9, x10, [x0, #16]5520; GISEL-NEXT: extr x9, x14, x13, #495521; GISEL-NEXT: extr x10, x15, x14, #495522; GISEL-NEXT: stp x8, x9, [x0, #32]5523; GISEL-NEXT: extr x8, x16, x15, #495524; GISEL-NEXT: stp x10, x8, [x0, #48]5525; GISEL-NEXT: ret5526entry:5527 %input_val = load i512, ptr %input, align 645528 %shifted = shl i512 %input_val, 155529 store i512 %shifted, ptr %result, align 645530 ret void5531}5532 5533define void @test_lshr_i512_const_15(ptr %result, ptr %input) {5534; SDAG-LABEL: test_lshr_i512_const_15:5535; SDAG: ; %bb.0: ; %entry5536; SDAG-NEXT: ldp x9, x8, [x1, #48]5537; SDAG-NEXT: ldp x11, x10, [x1, #32]5538; SDAG-NEXT: ldp x16, x15, [x1, #16]5539; SDAG-NEXT: extr x12, x8, x9, #155540; SDAG-NEXT: lsr x8, x8, #155541; SDAG-NEXT: ldp x13, x14, [x1]5542; SDAG-NEXT: extr x9, x9, x10, #155543; SDAG-NEXT: stp x12, x8, [x0, #48]5544; SDAG-NEXT: extr x12, x10, x11, #155545; SDAG-NEXT: extr x8, x15, x16, #155546; SDAG-NEXT: extr x10, x11, x15, #155547; SDAG-NEXT: stp x12, x9, [x0, #32]5548; SDAG-NEXT: extr x9, x14, x13, #155549; SDAG-NEXT: stp x8, x10, [x0, #16]5550; SDAG-NEXT: extr x8, x16, x14, #155551; SDAG-NEXT: stp x9, x8, [x0]5552; SDAG-NEXT: ret5553;5554; GISEL-LABEL: test_lshr_i512_const_15:5555; GISEL: ; %bb.0: ; %entry5556; GISEL-NEXT: ldp x8, x9, [x1]5557; GISEL-NEXT: ldp x10, x11, [x1, #16]5558; GISEL-NEXT: ldp x12, x13, [x1, #32]5559; GISEL-NEXT: extr x8, x9, x8, #155560; GISEL-NEXT: ldp x14, x15, [x1, #48]5561; GISEL-NEXT: extr x9, x10, x9, #155562; GISEL-NEXT: extr x10, x11, x10, #155563; GISEL-NEXT: stp x8, x9, [x0]5564; GISEL-NEXT: extr x8, x12, x11, #155565; GISEL-NEXT: extr x9, x13, x12, #155566; GISEL-NEXT: stp x10, x8, [x0, #16]5567; GISEL-NEXT: extr x10, x14, x13, #155568; GISEL-NEXT: extr x8, x15, x14, #155569; GISEL-NEXT: stp x9, x10, [x0, #32]5570; GISEL-NEXT: lsr x9, x15, #155571; GISEL-NEXT: stp x8, x9, [x0, #48]5572; GISEL-NEXT: ret5573entry:5574 %input_val = load i512, ptr %input, align 645575 %shifted = lshr i512 %input_val, 155576 store i512 %shifted, ptr %result, align 645577 ret void5578}5579 5580define void @test_ashr_i512_const_15(ptr %result, ptr %input) {5581; SDAG-LABEL: test_ashr_i512_const_15:5582; SDAG: ; %bb.0: ; %entry5583; SDAG-NEXT: ldp x9, x8, [x1, #48]5584; SDAG-NEXT: ldp x11, x10, [x1, #32]5585; SDAG-NEXT: ldp x16, x15, [x1, #16]5586; SDAG-NEXT: extr x12, x8, x9, #155587; SDAG-NEXT: asr x8, x8, #155588; SDAG-NEXT: ldp x13, x14, [x1]5589; SDAG-NEXT: extr x9, x9, x10, #155590; SDAG-NEXT: stp x12, x8, [x0, #48]5591; SDAG-NEXT: extr x12, x10, x11, #155592; SDAG-NEXT: extr x8, x15, x16, #155593; SDAG-NEXT: extr x10, x11, x15, #155594; SDAG-NEXT: stp x12, x9, [x0, #32]5595; SDAG-NEXT: extr x9, x14, x13, #155596; SDAG-NEXT: stp x8, x10, [x0, #16]5597; SDAG-NEXT: extr x8, x16, x14, #155598; SDAG-NEXT: stp x9, x8, [x0]5599; SDAG-NEXT: ret5600;5601; GISEL-LABEL: test_ashr_i512_const_15:5602; GISEL: ; %bb.0: ; %entry5603; GISEL-NEXT: ldp x8, x9, [x1]5604; GISEL-NEXT: ldp x10, x11, [x1, #16]5605; GISEL-NEXT: ldp x12, x13, [x1, #48]5606; GISEL-NEXT: extr x8, x9, x8, #155607; GISEL-NEXT: ldp x14, x15, [x1, #32]5608; GISEL-NEXT: extr x9, x10, x9, #155609; GISEL-NEXT: extr x10, x11, x10, #155610; GISEL-NEXT: stp x8, x9, [x0]5611; GISEL-NEXT: asr x8, x13, #635612; GISEL-NEXT: extr x11, x14, x11, #155613; GISEL-NEXT: extr x9, x15, x14, #155614; GISEL-NEXT: lsl x8, x8, #495615; GISEL-NEXT: stp x10, x11, [x0, #16]5616; GISEL-NEXT: extr x10, x12, x15, #155617; GISEL-NEXT: extr x11, x13, x12, #155618; GISEL-NEXT: orr x8, x8, x13, asr #155619; GISEL-NEXT: stp x9, x10, [x0, #32]5620; GISEL-NEXT: stp x11, x8, [x0, #48]5621; GISEL-NEXT: ret5622entry:5623 %input_val = load i512, ptr %input, align 645624 %shifted = ashr i512 %input_val, 155625 store i512 %shifted, ptr %result, align 645626 ret void5627}5628 5629define void @test_shl_i512_const_63(ptr %result, ptr %input) {5630; SDAG-LABEL: test_shl_i512_const_63:5631; SDAG: ; %bb.0: ; %entry5632; SDAG-NEXT: ldp x8, x9, [x1, #40]5633; SDAG-NEXT: ldr x10, [x1, #56]5634; SDAG-NEXT: ldp x13, x11, [x1, #24]5635; SDAG-NEXT: ldp x15, x14, [x1, #8]5636; SDAG-NEXT: extr x12, x9, x8, #15637; SDAG-NEXT: extr x9, x10, x9, #15638; SDAG-NEXT: ldr x10, [x1]5639; SDAG-NEXT: extr x16, x11, x13, #15640; SDAG-NEXT: extr x8, x8, x11, #15641; SDAG-NEXT: stp x12, x9, [x0, #48]5642; SDAG-NEXT: extr x9, x14, x15, #15643; SDAG-NEXT: extr x11, x13, x14, #15644; SDAG-NEXT: stp x16, x8, [x0, #32]5645; SDAG-NEXT: lsl x8, x10, #635646; SDAG-NEXT: stp x9, x11, [x0, #16]5647; SDAG-NEXT: extr x9, x15, x10, #15648; SDAG-NEXT: stp x8, x9, [x0]5649; SDAG-NEXT: ret5650;5651; GISEL-LABEL: test_shl_i512_const_63:5652; GISEL: ; %bb.0: ; %entry5653; GISEL-NEXT: ldp x8, x9, [x1]5654; GISEL-NEXT: ldp x10, x11, [x1, #16]5655; GISEL-NEXT: ldp x13, x14, [x1, #32]5656; GISEL-NEXT: lsl x12, x8, #635657; GISEL-NEXT: extr x8, x9, x8, #15658; GISEL-NEXT: extr x9, x10, x9, #15659; GISEL-NEXT: extr x10, x11, x10, #15660; GISEL-NEXT: ldp x15, x16, [x1, #48]5661; GISEL-NEXT: stp x12, x8, [x0]5662; GISEL-NEXT: extr x8, x13, x11, #15663; GISEL-NEXT: stp x9, x10, [x0, #16]5664; GISEL-NEXT: extr x9, x14, x13, #15665; GISEL-NEXT: extr x10, x15, x14, #15666; GISEL-NEXT: stp x8, x9, [x0, #32]5667; GISEL-NEXT: extr x8, x16, x15, #15668; GISEL-NEXT: stp x10, x8, [x0, #48]5669; GISEL-NEXT: ret5670entry:5671 %input_val = load i512, ptr %input, align 645672 %shifted = shl i512 %input_val, 635673 store i512 %shifted, ptr %result, align 645674 ret void5675}5676 5677define void @test_lshr_i512_const_63(ptr %result, ptr %input) {5678; SDAG-LABEL: test_lshr_i512_const_63:5679; SDAG: ; %bb.0: ; %entry5680; SDAG-NEXT: ldp x9, x8, [x1, #48]5681; SDAG-NEXT: ldp x11, x10, [x1, #32]5682; SDAG-NEXT: ldp x16, x15, [x1, #16]5683; SDAG-NEXT: extr x12, x8, x9, #635684; SDAG-NEXT: lsr x8, x8, #635685; SDAG-NEXT: ldp x13, x14, [x1]5686; SDAG-NEXT: extr x9, x9, x10, #635687; SDAG-NEXT: stp x12, x8, [x0, #48]5688; SDAG-NEXT: extr x12, x10, x11, #635689; SDAG-NEXT: extr x8, x15, x16, #635690; SDAG-NEXT: extr x10, x11, x15, #635691; SDAG-NEXT: stp x12, x9, [x0, #32]5692; SDAG-NEXT: extr x9, x14, x13, #635693; SDAG-NEXT: stp x8, x10, [x0, #16]5694; SDAG-NEXT: extr x8, x16, x14, #635695; SDAG-NEXT: stp x9, x8, [x0]5696; SDAG-NEXT: ret5697;5698; GISEL-LABEL: test_lshr_i512_const_63:5699; GISEL: ; %bb.0: ; %entry5700; GISEL-NEXT: ldp x8, x9, [x1]5701; GISEL-NEXT: ldp x10, x11, [x1, #16]5702; GISEL-NEXT: ldp x12, x13, [x1, #32]5703; GISEL-NEXT: extr x8, x9, x8, #635704; GISEL-NEXT: ldp x14, x15, [x1, #48]5705; GISEL-NEXT: extr x9, x10, x9, #635706; GISEL-NEXT: extr x10, x11, x10, #635707; GISEL-NEXT: stp x8, x9, [x0]5708; GISEL-NEXT: extr x8, x12, x11, #635709; GISEL-NEXT: extr x9, x13, x12, #635710; GISEL-NEXT: stp x10, x8, [x0, #16]5711; GISEL-NEXT: extr x10, x14, x13, #635712; GISEL-NEXT: extr x8, x15, x14, #635713; GISEL-NEXT: stp x9, x10, [x0, #32]5714; GISEL-NEXT: lsr x9, x15, #635715; GISEL-NEXT: stp x8, x9, [x0, #48]5716; GISEL-NEXT: ret5717entry:5718 %input_val = load i512, ptr %input, align 645719 %shifted = lshr i512 %input_val, 635720 store i512 %shifted, ptr %result, align 645721 ret void5722}5723 5724define void @test_ashr_i512_const_63(ptr %result, ptr %input) {5725; SDAG-LABEL: test_ashr_i512_const_63:5726; SDAG: ; %bb.0: ; %entry5727; SDAG-NEXT: ldp x9, x8, [x1, #48]5728; SDAG-NEXT: ldp x11, x10, [x1, #32]5729; SDAG-NEXT: ldp x16, x15, [x1, #16]5730; SDAG-NEXT: extr x12, x8, x9, #635731; SDAG-NEXT: asr x8, x8, #635732; SDAG-NEXT: ldp x13, x14, [x1]5733; SDAG-NEXT: extr x9, x9, x10, #635734; SDAG-NEXT: stp x12, x8, [x0, #48]5735; SDAG-NEXT: extr x12, x10, x11, #635736; SDAG-NEXT: extr x8, x15, x16, #635737; SDAG-NEXT: extr x10, x11, x15, #635738; SDAG-NEXT: stp x12, x9, [x0, #32]5739; SDAG-NEXT: extr x9, x14, x13, #635740; SDAG-NEXT: stp x8, x10, [x0, #16]5741; SDAG-NEXT: extr x8, x16, x14, #635742; SDAG-NEXT: stp x9, x8, [x0]5743; SDAG-NEXT: ret5744;5745; GISEL-LABEL: test_ashr_i512_const_63:5746; GISEL: ; %bb.0: ; %entry5747; GISEL-NEXT: ldp x8, x9, [x1]5748; GISEL-NEXT: ldp x10, x11, [x1, #16]5749; GISEL-NEXT: ldp x12, x13, [x1, #32]5750; GISEL-NEXT: extr x8, x9, x8, #635751; GISEL-NEXT: ldp x14, x15, [x1, #48]5752; GISEL-NEXT: extr x9, x10, x9, #635753; GISEL-NEXT: extr x10, x11, x10, #635754; GISEL-NEXT: stp x8, x9, [x0]5755; GISEL-NEXT: extr x8, x12, x11, #635756; GISEL-NEXT: extr x9, x13, x12, #635757; GISEL-NEXT: extr x11, x14, x13, #635758; GISEL-NEXT: stp x10, x8, [x0, #16]5759; GISEL-NEXT: asr x10, x15, #635760; GISEL-NEXT: extr x8, x15, x14, #635761; GISEL-NEXT: stp x9, x11, [x0, #32]5762; GISEL-NEXT: orr x9, x10, x10, lsl #15763; GISEL-NEXT: stp x8, x9, [x0, #48]5764; GISEL-NEXT: ret5765entry:5766 %input_val = load i512, ptr %input, align 645767 %shifted = ashr i512 %input_val, 635768 store i512 %shifted, ptr %result, align 645769 ret void5770}5771 5772; Mixed word+bit shifts5773define void @test_shl_i512_const_65(ptr %result, ptr %input) {5774; SDAG-LABEL: test_shl_i512_const_65:5775; SDAG: ; %bb.0: ; %entry5776; SDAG-NEXT: ldp x9, x8, [x1, #32]5777; SDAG-NEXT: ldr x10, [x1, #48]5778; SDAG-NEXT: ldp x12, x11, [x1, #16]5779; SDAG-NEXT: extr x13, x8, x9, #635780; SDAG-NEXT: extr x8, x10, x8, #635781; SDAG-NEXT: ldp x10, x14, [x1]5782; SDAG-NEXT: extr x15, x11, x12, #635783; SDAG-NEXT: stp x13, x8, [x0, #48]5784; SDAG-NEXT: extr x9, x9, x11, #635785; SDAG-NEXT: extr x8, x14, x10, #635786; SDAG-NEXT: extr x11, x12, x14, #635787; SDAG-NEXT: stp x15, x9, [x0, #32]5788; SDAG-NEXT: stp x8, x11, [x0, #16]5789; SDAG-NEXT: lsl x8, x10, #15790; SDAG-NEXT: stp xzr, x8, [x0]5791; SDAG-NEXT: ret5792;5793; GISEL-LABEL: test_shl_i512_const_65:5794; GISEL: ; %bb.0: ; %entry5795; GISEL-NEXT: ldp x8, x9, [x1]5796; GISEL-NEXT: ldr x15, [x1, #48]5797; GISEL-NEXT: ldp x10, x11, [x1, #16]5798; GISEL-NEXT: ldp x12, x13, [x1, #32]5799; GISEL-NEXT: lsl x14, x8, #15800; GISEL-NEXT: extr x8, x9, x8, #635801; GISEL-NEXT: extr x9, x10, x9, #635802; GISEL-NEXT: extr x10, x11, x10, #635803; GISEL-NEXT: stp xzr, x14, [x0]5804; GISEL-NEXT: stp x8, x9, [x0, #16]5805; GISEL-NEXT: extr x8, x12, x11, #635806; GISEL-NEXT: extr x9, x13, x12, #635807; GISEL-NEXT: stp x10, x8, [x0, #32]5808; GISEL-NEXT: extr x10, x15, x13, #635809; GISEL-NEXT: stp x9, x10, [x0, #48]5810; GISEL-NEXT: ret5811entry:5812 %input_val = load i512, ptr %input, align 645813 %shifted = shl i512 %input_val, 655814 store i512 %shifted, ptr %result, align 645815 ret void5816}5817 5818define void @test_lshr_i512_const_65(ptr %result, ptr %input) {5819; SDAG-LABEL: test_lshr_i512_const_65:5820; SDAG: ; %bb.0: ; %entry5821; SDAG-NEXT: ldp x9, x8, [x1, #48]5822; SDAG-NEXT: ldr x15, [x1, #24]5823; SDAG-NEXT: ldp x14, x10, [x1, #32]5824; SDAG-NEXT: ldp x11, x12, [x1, #8]5825; SDAG-NEXT: lsr x13, x8, #15826; SDAG-NEXT: extr x8, x8, x9, #15827; SDAG-NEXT: extr x16, x9, x10, #15828; SDAG-NEXT: extr x9, x14, x15, #15829; SDAG-NEXT: extr x10, x10, x14, #15830; SDAG-NEXT: stp x13, xzr, [x0, #48]5831; SDAG-NEXT: stp x16, x8, [x0, #32]5832; SDAG-NEXT: extr x8, x12, x11, #15833; SDAG-NEXT: stp x9, x10, [x0, #16]5834; SDAG-NEXT: extr x9, x15, x12, #15835; SDAG-NEXT: stp x8, x9, [x0]5836; SDAG-NEXT: ret5837;5838; GISEL-LABEL: test_lshr_i512_const_65:5839; GISEL: ; %bb.0: ; %entry5840; GISEL-NEXT: ldp x8, x9, [x1, #8]5841; GISEL-NEXT: ldr x14, [x1, #56]5842; GISEL-NEXT: ldp x10, x11, [x1, #24]5843; GISEL-NEXT: ldp x12, x13, [x1, #40]5844; GISEL-NEXT: extr x8, x9, x8, #15845; GISEL-NEXT: extr x9, x10, x9, #15846; GISEL-NEXT: extr x10, x11, x10, #15847; GISEL-NEXT: stp x8, x9, [x0]5848; GISEL-NEXT: extr x8, x12, x11, #15849; GISEL-NEXT: extr x9, x13, x12, #15850; GISEL-NEXT: stp x10, x8, [x0, #16]5851; GISEL-NEXT: extr x10, x14, x13, #15852; GISEL-NEXT: lsr x8, x14, #15853; GISEL-NEXT: stp x9, x10, [x0, #32]5854; GISEL-NEXT: stp x8, xzr, [x0, #48]5855; GISEL-NEXT: ret5856entry:5857 %input_val = load i512, ptr %input, align 645858 %shifted = lshr i512 %input_val, 655859 store i512 %shifted, ptr %result, align 645860 ret void5861}5862 5863define void @test_ashr_i512_const_65(ptr %result, ptr %input) {5864; SDAG-LABEL: test_ashr_i512_const_65:5865; SDAG: ; %bb.0: ; %entry5866; SDAG-NEXT: ldp x9, x8, [x1, #48]5867; SDAG-NEXT: ldr x16, [x1, #24]5868; SDAG-NEXT: ldp x15, x10, [x1, #32]5869; SDAG-NEXT: ldp x12, x13, [x1, #8]5870; SDAG-NEXT: asr x11, x8, #15871; SDAG-NEXT: asr x14, x8, #635872; SDAG-NEXT: extr x8, x8, x9, #15873; SDAG-NEXT: stp x11, x14, [x0, #48]5874; SDAG-NEXT: extr x11, x9, x10, #15875; SDAG-NEXT: extr x9, x15, x16, #15876; SDAG-NEXT: extr x10, x10, x15, #15877; SDAG-NEXT: stp x11, x8, [x0, #32]5878; SDAG-NEXT: extr x8, x13, x12, #15879; SDAG-NEXT: stp x9, x10, [x0, #16]5880; SDAG-NEXT: extr x9, x16, x13, #15881; SDAG-NEXT: stp x8, x9, [x0]5882; SDAG-NEXT: ret5883;5884; GISEL-LABEL: test_ashr_i512_const_65:5885; GISEL: ; %bb.0: ; %entry5886; GISEL-NEXT: ldp x8, x9, [x1, #8]5887; GISEL-NEXT: ldr x13, [x1, #40]5888; GISEL-NEXT: ldp x10, x11, [x1, #24]5889; GISEL-NEXT: ldp x14, x12, [x1, #48]5890; GISEL-NEXT: extr x8, x9, x8, #15891; GISEL-NEXT: extr x9, x10, x9, #15892; GISEL-NEXT: extr x10, x11, x10, #15893; GISEL-NEXT: asr x15, x12, #635894; GISEL-NEXT: stp x8, x9, [x0]5895; GISEL-NEXT: extr x8, x13, x11, #15896; GISEL-NEXT: extr x9, x14, x13, #15897; GISEL-NEXT: lsl x11, x15, #635898; GISEL-NEXT: stp x10, x8, [x0, #16]5899; GISEL-NEXT: extr x10, x12, x14, #15900; GISEL-NEXT: orr x8, x11, x12, asr #15901; GISEL-NEXT: stp x9, x10, [x0, #32]5902; GISEL-NEXT: stp x8, x15, [x0, #48]5903; GISEL-NEXT: ret5904entry:5905 %input_val = load i512, ptr %input, align 645906 %shifted = ashr i512 %input_val, 655907 store i512 %shifted, ptr %result, align 645908 ret void5909}5910 5911define void @test_shl_i512_const_100(ptr %result, ptr %input) {5912; SDAG-LABEL: test_shl_i512_const_100:5913; SDAG: ; %bb.0: ; %entry5914; SDAG-NEXT: ldp x9, x8, [x1, #32]5915; SDAG-NEXT: ldr x10, [x1, #48]5916; SDAG-NEXT: ldp x12, x11, [x1, #16]5917; SDAG-NEXT: extr x13, x8, x9, #285918; SDAG-NEXT: extr x8, x10, x8, #285919; SDAG-NEXT: ldp x10, x14, [x1]5920; SDAG-NEXT: extr x15, x11, x12, #285921; SDAG-NEXT: stp x13, x8, [x0, #48]5922; SDAG-NEXT: extr x9, x9, x11, #285923; SDAG-NEXT: extr x8, x14, x10, #285924; SDAG-NEXT: extr x11, x12, x14, #285925; SDAG-NEXT: stp x15, x9, [x0, #32]5926; SDAG-NEXT: stp x8, x11, [x0, #16]5927; SDAG-NEXT: lsl x8, x10, #365928; SDAG-NEXT: stp xzr, x8, [x0]5929; SDAG-NEXT: ret5930;5931; GISEL-LABEL: test_shl_i512_const_100:5932; GISEL: ; %bb.0: ; %entry5933; GISEL-NEXT: ldp x8, x9, [x1]5934; GISEL-NEXT: ldr x15, [x1, #48]5935; GISEL-NEXT: ldp x10, x11, [x1, #16]5936; GISEL-NEXT: ldp x12, x13, [x1, #32]5937; GISEL-NEXT: lsl x14, x8, #365938; GISEL-NEXT: extr x8, x9, x8, #285939; GISEL-NEXT: extr x9, x10, x9, #285940; GISEL-NEXT: extr x10, x11, x10, #285941; GISEL-NEXT: stp xzr, x14, [x0]5942; GISEL-NEXT: stp x8, x9, [x0, #16]5943; GISEL-NEXT: extr x8, x12, x11, #285944; GISEL-NEXT: extr x9, x13, x12, #285945; GISEL-NEXT: stp x10, x8, [x0, #32]5946; GISEL-NEXT: extr x10, x15, x13, #285947; GISEL-NEXT: stp x9, x10, [x0, #48]5948; GISEL-NEXT: ret5949entry:5950 %input_val = load i512, ptr %input, align 645951 %shifted = shl i512 %input_val, 1005952 store i512 %shifted, ptr %result, align 645953 ret void5954}5955 5956define void @test_lshr_i512_const_100(ptr %result, ptr %input) {5957; SDAG-LABEL: test_lshr_i512_const_100:5958; SDAG: ; %bb.0: ; %entry5959; SDAG-NEXT: ldp x9, x8, [x1, #48]5960; SDAG-NEXT: ldr x15, [x1, #24]5961; SDAG-NEXT: ldp x14, x10, [x1, #32]5962; SDAG-NEXT: ldp x11, x12, [x1, #8]5963; SDAG-NEXT: lsr x13, x8, #365964; SDAG-NEXT: extr x8, x8, x9, #365965; SDAG-NEXT: extr x16, x9, x10, #365966; SDAG-NEXT: extr x9, x14, x15, #365967; SDAG-NEXT: extr x10, x10, x14, #365968; SDAG-NEXT: stp x13, xzr, [x0, #48]5969; SDAG-NEXT: stp x16, x8, [x0, #32]5970; SDAG-NEXT: extr x8, x12, x11, #365971; SDAG-NEXT: stp x9, x10, [x0, #16]5972; SDAG-NEXT: extr x9, x15, x12, #365973; SDAG-NEXT: stp x8, x9, [x0]5974; SDAG-NEXT: ret5975;5976; GISEL-LABEL: test_lshr_i512_const_100:5977; GISEL: ; %bb.0: ; %entry5978; GISEL-NEXT: ldp x8, x9, [x1, #8]5979; GISEL-NEXT: ldr x14, [x1, #56]5980; GISEL-NEXT: ldp x10, x11, [x1, #24]5981; GISEL-NEXT: ldp x12, x13, [x1, #40]5982; GISEL-NEXT: extr x8, x9, x8, #365983; GISEL-NEXT: extr x9, x10, x9, #365984; GISEL-NEXT: extr x10, x11, x10, #365985; GISEL-NEXT: stp x8, x9, [x0]5986; GISEL-NEXT: extr x8, x12, x11, #365987; GISEL-NEXT: extr x9, x13, x12, #365988; GISEL-NEXT: stp x10, x8, [x0, #16]5989; GISEL-NEXT: extr x10, x14, x13, #365990; GISEL-NEXT: lsr x8, x14, #365991; GISEL-NEXT: stp x9, x10, [x0, #32]5992; GISEL-NEXT: stp x8, xzr, [x0, #48]5993; GISEL-NEXT: ret5994entry:5995 %input_val = load i512, ptr %input, align 645996 %shifted = lshr i512 %input_val, 1005997 store i512 %shifted, ptr %result, align 645998 ret void5999}6000 6001define void @test_ashr_i512_const_100(ptr %result, ptr %input) {6002; SDAG-LABEL: test_ashr_i512_const_100:6003; SDAG: ; %bb.0: ; %entry6004; SDAG-NEXT: ldp x9, x8, [x1, #48]6005; SDAG-NEXT: ldr x16, [x1, #24]6006; SDAG-NEXT: ldp x15, x10, [x1, #32]6007; SDAG-NEXT: ldp x12, x13, [x1, #8]6008; SDAG-NEXT: asr x11, x8, #366009; SDAG-NEXT: asr x14, x8, #636010; SDAG-NEXT: extr x8, x8, x9, #366011; SDAG-NEXT: stp x11, x14, [x0, #48]6012; SDAG-NEXT: extr x11, x9, x10, #366013; SDAG-NEXT: extr x9, x15, x16, #366014; SDAG-NEXT: extr x10, x10, x15, #366015; SDAG-NEXT: stp x11, x8, [x0, #32]6016; SDAG-NEXT: extr x8, x13, x12, #366017; SDAG-NEXT: stp x9, x10, [x0, #16]6018; SDAG-NEXT: extr x9, x16, x13, #366019; SDAG-NEXT: stp x8, x9, [x0]6020; SDAG-NEXT: ret6021;6022; GISEL-LABEL: test_ashr_i512_const_100:6023; GISEL: ; %bb.0: ; %entry6024; GISEL-NEXT: ldp x8, x9, [x1, #8]6025; GISEL-NEXT: ldr x13, [x1, #40]6026; GISEL-NEXT: ldp x10, x11, [x1, #24]6027; GISEL-NEXT: ldp x14, x12, [x1, #48]6028; GISEL-NEXT: extr x8, x9, x8, #366029; GISEL-NEXT: extr x9, x10, x9, #366030; GISEL-NEXT: extr x10, x11, x10, #366031; GISEL-NEXT: asr x15, x12, #636032; GISEL-NEXT: stp x8, x9, [x0]6033; GISEL-NEXT: extr x8, x13, x11, #366034; GISEL-NEXT: extr x9, x14, x13, #366035; GISEL-NEXT: lsl x11, x15, #286036; GISEL-NEXT: stp x10, x8, [x0, #16]6037; GISEL-NEXT: extr x10, x12, x14, #366038; GISEL-NEXT: orr x8, x11, x12, asr #366039; GISEL-NEXT: stp x9, x10, [x0, #32]6040; GISEL-NEXT: stp x8, x15, [x0, #48]6041; GISEL-NEXT: ret6042entry:6043 %input_val = load i512, ptr %input, align 646044 %shifted = ashr i512 %input_val, 1006045 store i512 %shifted, ptr %result, align 646046 ret void6047}6048 6049; Boundary conditions - test exactly at the edge6050define void @test_shl_i512_const_127(ptr %result, ptr %input) {6051; SDAG-LABEL: test_shl_i512_const_127:6052; SDAG: ; %bb.0: ; %entry6053; SDAG-NEXT: ldp x9, x8, [x1, #32]6054; SDAG-NEXT: ldr x10, [x1, #48]6055; SDAG-NEXT: ldp x12, x11, [x1, #16]6056; SDAG-NEXT: extr x13, x8, x9, #16057; SDAG-NEXT: extr x8, x10, x8, #16058; SDAG-NEXT: ldp x10, x14, [x1]6059; SDAG-NEXT: extr x15, x11, x12, #16060; SDAG-NEXT: stp x13, x8, [x0, #48]6061; SDAG-NEXT: extr x9, x9, x11, #16062; SDAG-NEXT: extr x8, x14, x10, #16063; SDAG-NEXT: extr x11, x12, x14, #16064; SDAG-NEXT: stp x15, x9, [x0, #32]6065; SDAG-NEXT: stp x8, x11, [x0, #16]6066; SDAG-NEXT: lsl x8, x10, #636067; SDAG-NEXT: stp xzr, x8, [x0]6068; SDAG-NEXT: ret6069;6070; GISEL-LABEL: test_shl_i512_const_127:6071; GISEL: ; %bb.0: ; %entry6072; GISEL-NEXT: ldp x8, x9, [x1]6073; GISEL-NEXT: ldr x15, [x1, #48]6074; GISEL-NEXT: ldp x10, x11, [x1, #16]6075; GISEL-NEXT: ldp x12, x13, [x1, #32]6076; GISEL-NEXT: lsl x14, x8, #636077; GISEL-NEXT: extr x8, x9, x8, #16078; GISEL-NEXT: extr x9, x10, x9, #16079; GISEL-NEXT: extr x10, x11, x10, #16080; GISEL-NEXT: stp xzr, x14, [x0]6081; GISEL-NEXT: stp x8, x9, [x0, #16]6082; GISEL-NEXT: extr x8, x12, x11, #16083; GISEL-NEXT: extr x9, x13, x12, #16084; GISEL-NEXT: stp x10, x8, [x0, #32]6085; GISEL-NEXT: extr x10, x15, x13, #16086; GISEL-NEXT: stp x9, x10, [x0, #48]6087; GISEL-NEXT: ret6088entry:6089 %input_val = load i512, ptr %input, align 646090 %shifted = shl i512 %input_val, 1276091 store i512 %shifted, ptr %result, align 646092 ret void6093}6094 6095define void @test_lshr_i512_const_127(ptr %result, ptr %input) {6096; SDAG-LABEL: test_lshr_i512_const_127:6097; SDAG: ; %bb.0: ; %entry6098; SDAG-NEXT: ldp x9, x8, [x1, #48]6099; SDAG-NEXT: ldr x15, [x1, #24]6100; SDAG-NEXT: ldp x14, x10, [x1, #32]6101; SDAG-NEXT: ldp x11, x12, [x1, #8]6102; SDAG-NEXT: lsr x13, x8, #636103; SDAG-NEXT: extr x8, x8, x9, #636104; SDAG-NEXT: extr x16, x9, x10, #636105; SDAG-NEXT: extr x9, x14, x15, #636106; SDAG-NEXT: extr x10, x10, x14, #636107; SDAG-NEXT: stp x13, xzr, [x0, #48]6108; SDAG-NEXT: stp x16, x8, [x0, #32]6109; SDAG-NEXT: extr x8, x12, x11, #636110; SDAG-NEXT: stp x9, x10, [x0, #16]6111; SDAG-NEXT: extr x9, x15, x12, #636112; SDAG-NEXT: stp x8, x9, [x0]6113; SDAG-NEXT: ret6114;6115; GISEL-LABEL: test_lshr_i512_const_127:6116; GISEL: ; %bb.0: ; %entry6117; GISEL-NEXT: ldp x8, x9, [x1, #8]6118; GISEL-NEXT: ldr x14, [x1, #56]6119; GISEL-NEXT: ldp x10, x11, [x1, #24]6120; GISEL-NEXT: ldp x12, x13, [x1, #40]6121; GISEL-NEXT: extr x8, x9, x8, #636122; GISEL-NEXT: extr x9, x10, x9, #636123; GISEL-NEXT: extr x10, x11, x10, #636124; GISEL-NEXT: stp x8, x9, [x0]6125; GISEL-NEXT: extr x8, x12, x11, #636126; GISEL-NEXT: extr x9, x13, x12, #636127; GISEL-NEXT: stp x10, x8, [x0, #16]6128; GISEL-NEXT: extr x10, x14, x13, #636129; GISEL-NEXT: lsr x8, x14, #636130; GISEL-NEXT: stp x9, x10, [x0, #32]6131; GISEL-NEXT: stp x8, xzr, [x0, #48]6132; GISEL-NEXT: ret6133entry:6134 %input_val = load i512, ptr %input, align 646135 %shifted = lshr i512 %input_val, 1276136 store i512 %shifted, ptr %result, align 646137 ret void6138}6139 6140define void @test_ashr_i512_const_127(ptr %result, ptr %input) {6141; SDAG-LABEL: test_ashr_i512_const_127:6142; SDAG: ; %bb.0: ; %entry6143; SDAG-NEXT: ldp x9, x8, [x1, #48]6144; SDAG-NEXT: ldr x15, [x1, #24]6145; SDAG-NEXT: ldp x14, x10, [x1, #32]6146; SDAG-NEXT: ldp x12, x13, [x1, #8]6147; SDAG-NEXT: asr x11, x8, #636148; SDAG-NEXT: extr x8, x8, x9, #636149; SDAG-NEXT: extr x16, x9, x10, #636150; SDAG-NEXT: extr x9, x14, x15, #636151; SDAG-NEXT: extr x10, x10, x14, #636152; SDAG-NEXT: stp x11, x11, [x0, #48]6153; SDAG-NEXT: stp x16, x8, [x0, #32]6154; SDAG-NEXT: extr x8, x13, x12, #636155; SDAG-NEXT: stp x9, x10, [x0, #16]6156; SDAG-NEXT: extr x9, x15, x13, #636157; SDAG-NEXT: stp x8, x9, [x0]6158; SDAG-NEXT: ret6159;6160; GISEL-LABEL: test_ashr_i512_const_127:6161; GISEL: ; %bb.0: ; %entry6162; GISEL-NEXT: ldp x8, x9, [x1, #8]6163; GISEL-NEXT: ldr x14, [x1, #56]6164; GISEL-NEXT: ldp x10, x11, [x1, #24]6165; GISEL-NEXT: ldp x12, x13, [x1, #40]6166; GISEL-NEXT: extr x8, x9, x8, #636167; GISEL-NEXT: extr x9, x10, x9, #636168; GISEL-NEXT: extr x10, x11, x10, #636169; GISEL-NEXT: stp x8, x9, [x0]6170; GISEL-NEXT: extr x8, x12, x11, #636171; GISEL-NEXT: asr x9, x14, #636172; GISEL-NEXT: extr x11, x13, x12, #636173; GISEL-NEXT: stp x10, x8, [x0, #16]6174; GISEL-NEXT: extr x10, x14, x13, #636175; GISEL-NEXT: orr x8, x9, x9, lsl #16176; GISEL-NEXT: stp x11, x10, [x0, #32]6177; GISEL-NEXT: stp x8, x9, [x0, #48]6178; GISEL-NEXT: ret6179entry:6180 %input_val = load i512, ptr %input, align 646181 %shifted = ashr i512 %input_val, 1276182 store i512 %shifted, ptr %result, align 646183 ret void6184}6185 6186;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:6187; CHECK: {{.*}}6188