brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.8 KiB · 61376c3 Raw
138 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s | FileCheck %s3 4target triple = "aarch64-unknown-linux-gnu"5 6; Ensure we don't attempt to combine into an extending fp128 load.7define void @fcvt_v4f64_v4f128(ptr %a, ptr %b) vscale_range(2,0) #0 {8; CHECK-LABEL: fcvt_v4f64_v4f128:9; CHECK:       // %bb.0:10; CHECK-NEXT:    str x29, [sp, #-32]! // 8-byte Folded Spill11; CHECK-NEXT:    stp x30, x19, [sp, #16] // 16-byte Folded Spill12; CHECK-NEXT:    sub sp, sp, #4813; CHECK-NEXT:    addvl sp, sp, #-214; CHECK-NEXT:    ptrue p0.d, vl415; CHECK-NEXT:    add x8, sp, #4816; CHECK-NEXT:    mov x19, x117; CHECK-NEXT:    ld1d { z0.d }, p0/z, [x0]18; CHECK-NEXT:    str z0, [x8, #1, mul vl] // 16-byte Folded Spill19; CHECK-NEXT:    ext z0.b, z0.b, z0.b, #1620; CHECK-NEXT:    str z0, [x8] // 16-byte Folded Spill21; CHECK-NEXT:    // kill: def $d0 killed $d0 killed $z022; CHECK-NEXT:    bl __extenddftf223; CHECK-NEXT:    add x8, sp, #4824; CHECK-NEXT:    str q0, [sp, #32] // 16-byte Spill25; CHECK-NEXT:    ldr z1, [x8] // 16-byte Folded Reload26; CHECK-NEXT:    mov d1, v1.d[1]27; CHECK-NEXT:    fmov d0, d128; CHECK-NEXT:    bl __extenddftf229; CHECK-NEXT:    add x8, sp, #4830; CHECK-NEXT:    str q0, [sp, #16] // 16-byte Spill31; CHECK-NEXT:    ldr z0, [x8, #1, mul vl] // 16-byte Folded Reload32; CHECK-NEXT:    // kill: def $d0 killed $d0 killed $z033; CHECK-NEXT:    bl __extenddftf234; CHECK-NEXT:    add x8, sp, #4835; CHECK-NEXT:    str q0, [sp] // 16-byte Spill36; CHECK-NEXT:    ldr z1, [x8, #1, mul vl] // 16-byte Folded Reload37; CHECK-NEXT:    mov d1, v1.d[1]38; CHECK-NEXT:    fmov d0, d139; CHECK-NEXT:    bl __extenddftf240; CHECK-NEXT:    ldr q1, [sp] // 16-byte Reload41; CHECK-NEXT:    stp q1, q0, [x19]42; CHECK-NEXT:    ldp q1, q0, [sp, #16] // 32-byte Folded Reload43; CHECK-NEXT:    stp q0, q1, [x19, #32]44; CHECK-NEXT:    addvl sp, sp, #245; CHECK-NEXT:    add sp, sp, #4846; CHECK-NEXT:    ldp x30, x19, [sp, #16] // 16-byte Folded Reload47; CHECK-NEXT:    ldr x29, [sp], #32 // 8-byte Folded Reload48; CHECK-NEXT:    ret49  %op1 = load <4 x double>, ptr %a50  %res = fpext <4 x double> %op1 to <4 x fp128>51  store <4 x fp128> %res, ptr %b52  ret void53}54 55; Ensure we don't attempt to combine into a truncating fp128 store.56define void @fcvt_v4f128_v4f64(ptr %a, ptr %b) vscale_range(2,0) #0 {57; CHECK-LABEL: fcvt_v4f128_v4f64:58; CHECK:       // %bb.0:59; CHECK-NEXT:    str x29, [sp, #-32]! // 8-byte Folded Spill60; CHECK-NEXT:    stp x30, x19, [sp, #16] // 16-byte Folded Spill61; CHECK-NEXT:    sub sp, sp, #12862; CHECK-NEXT:    addvl sp, sp, #-263; CHECK-NEXT:    ldp q1, q0, [x0, #64]64; CHECK-NEXT:    mov x19, x165; CHECK-NEXT:    stp q0, q1, [sp, #96] // 32-byte Folded Spill66; CHECK-NEXT:    ldp q1, q0, [x0, #96]67; CHECK-NEXT:    stp q0, q1, [sp, #64] // 32-byte Folded Spill68; CHECK-NEXT:    ldp q1, q0, [x0]69; CHECK-NEXT:    stp q0, q1, [sp, #32] // 32-byte Folded Spill70; CHECK-NEXT:    ldp q1, q0, [x0, #32]71; CHECK-NEXT:    str q1, [sp, #16] // 16-byte Spill72; CHECK-NEXT:    bl __trunctfdf273; CHECK-NEXT:    // kill: def $d0 killed $d0 def $q074; CHECK-NEXT:    str q0, [sp] // 16-byte Spill75; CHECK-NEXT:    ldr q0, [sp, #16] // 16-byte Reload76; CHECK-NEXT:    bl __trunctfdf277; CHECK-NEXT:    ldr q1, [sp] // 16-byte Reload78; CHECK-NEXT:    // kill: def $d0 killed $d0 def $z079; CHECK-NEXT:    add x8, sp, #12880; CHECK-NEXT:    mov v0.d[1], v1.d[0]81; CHECK-NEXT:    str z0, [x8, #1, mul vl] // 16-byte Folded Spill82; CHECK-NEXT:    ldr q0, [sp, #32] // 16-byte Reload83; CHECK-NEXT:    bl __trunctfdf284; CHECK-NEXT:    // kill: def $d0 killed $d0 def $q085; CHECK-NEXT:    str q0, [sp, #32] // 16-byte Spill86; CHECK-NEXT:    ldr q0, [sp, #48] // 16-byte Reload87; CHECK-NEXT:    bl __trunctfdf288; CHECK-NEXT:    ldr q1, [sp, #32] // 16-byte Reload89; CHECK-NEXT:    // kill: def $d0 killed $d0 def $z090; CHECK-NEXT:    add x8, sp, #12891; CHECK-NEXT:    ptrue p0.d, vl292; CHECK-NEXT:    mov v0.d[1], v1.d[0]93; CHECK-NEXT:    ldr z1, [x8, #1, mul vl] // 16-byte Folded Reload94; CHECK-NEXT:    splice z0.d, p0, z0.d, z1.d95; CHECK-NEXT:    str z0, [x8, #1, mul vl] // 16-byte Folded Spill96; CHECK-NEXT:    ldr q0, [sp, #64] // 16-byte Reload97; CHECK-NEXT:    bl __trunctfdf298; CHECK-NEXT:    // kill: def $d0 killed $d0 def $q099; CHECK-NEXT:    str q0, [sp, #64] // 16-byte Spill100; CHECK-NEXT:    ldr q0, [sp, #80] // 16-byte Reload101; CHECK-NEXT:    bl __trunctfdf2102; CHECK-NEXT:    ldr q1, [sp, #64] // 16-byte Reload103; CHECK-NEXT:    // kill: def $d0 killed $d0 def $z0104; CHECK-NEXT:    add x8, sp, #128105; CHECK-NEXT:    mov v0.d[1], v1.d[0]106; CHECK-NEXT:    str z0, [x8] // 16-byte Folded Spill107; CHECK-NEXT:    ldr q0, [sp, #96] // 16-byte Reload108; CHECK-NEXT:    bl __trunctfdf2109; CHECK-NEXT:    // kill: def $d0 killed $d0 def $q0110; CHECK-NEXT:    str q0, [sp, #96] // 16-byte Spill111; CHECK-NEXT:    ldr q0, [sp, #112] // 16-byte Reload112; CHECK-NEXT:    bl __trunctfdf2113; CHECK-NEXT:    ldr q1, [sp, #96] // 16-byte Reload114; CHECK-NEXT:    // kill: def $d0 killed $d0 def $z0115; CHECK-NEXT:    add x8, sp, #128116; CHECK-NEXT:    ptrue p0.d, vl2117; CHECK-NEXT:    mov v0.d[1], v1.d[0]118; CHECK-NEXT:    ldr z1, [x8] // 16-byte Folded Reload119; CHECK-NEXT:    mov x8, #4 // =0x4120; CHECK-NEXT:    splice z0.d, p0, z0.d, z1.d121; CHECK-NEXT:    ptrue p0.d, vl4122; CHECK-NEXT:    st1d { z0.d }, p0, [x19, x8, lsl #3]123; CHECK-NEXT:    add x8, sp, #128124; CHECK-NEXT:    ldr z0, [x8, #1, mul vl] // 16-byte Folded Reload125; CHECK-NEXT:    st1d { z0.d }, p0, [x19]126; CHECK-NEXT:    addvl sp, sp, #2127; CHECK-NEXT:    add sp, sp, #128128; CHECK-NEXT:    ldp x30, x19, [sp, #16] // 16-byte Folded Reload129; CHECK-NEXT:    ldr x29, [sp], #32 // 8-byte Folded Reload130; CHECK-NEXT:    ret131  %op1 = load <8 x fp128>, ptr %a132  %res = fptrunc <8 x fp128> %op1 to <8 x double>133  store <8 x double> %res, ptr %b134  ret void135}136 137attributes #0 = { nounwind "target-features"="+sve" }138