1# RUN: llc -O0 -run-pass=legalizer -global-isel-abort=0 %s -o - | FileCheck %s
2--- |
3  target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
4  target triple = "aarch64"
5
6  define fp128 @x(fp128 %a) {
7  entry:
8    %a.addr = alloca fp128, align 16
9    store fp128 %a, fp128* %a.addr, align 16
10    %0 = load fp128, fp128* %a.addr, align 16
11    %sub = fsub fp128 0xL00000000000000008000000000000000, %0
12    ret fp128 %sub
13  }
14
15...
16---
17name:            x
18alignment:       2
19exposesReturnsTwice: false
20legalized:       false
21regBankSelected: false
22selected:        false
23tracksRegLiveness: true
24fixedStack:
25stack:
26  - { id: 0, name: a.addr, type: default, offset: 0, size: 16, alignment: 16,
27      stack-id: 0, callee-saved-register: '', callee-saved-restored: true,
28      debug-info-variable: '', debug-info-expression: '',
29      debug-info-location: '' }
30body:             |
31  bb.1.entry:
32    liveins: $q0
33
34    ; This test just checks we don't crash on G_FNEG of FP128 types. Expect to fall
35    ; back until support is added for fp128.
36    ; CHECK: ret
37    %0:_(s128) = COPY $q0
38    %1:_(p0) = G_FRAME_INDEX %stack.0.a.addr
39    G_STORE %0(s128), %1(p0) :: (store 16 into %ir.a.addr)
40    %2:_(s128) = G_LOAD %1(p0) :: (load 16 from %ir.a.addr)
41    %3:_(s128) = G_FNEG %2
42    $q0 = COPY %3(s128)
43    RET_ReallyLR implicit $q0
44
45...
46