Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / test / CodeGen / AArch64 / aarch64st1.mir
blob9482a42e69f6b88280f840665d957d6fbdeb9e1f
1 # Check that it doesn't crash with unhandled opcode error, see pr52249
2 # RUN: llc -mtriple=aarch64-none-linux-gnu -run-pass localstackalloc -o - %s | FileCheck %s
3 --- |
5   define void @test_st1_to_sp(<2 x i32> %a, <4 x i16> %b, <8 x i8> %c, <2 x i64> %d) gc "statepoint-example" { entry: ret void }
7 ...
8 ---
9 # CHECK-LABEL: test_st1_to_sp
10 name:            test_st1_to_sp
11 alignment:       4
12 exposesReturnsTwice: false
13 legalized:       false
14 regBankSelected: false
15 selected:        false
16 failedISel:      false
17 tracksRegLiveness: true
18 hasWinCFI:       false
19 failsVerification: false
20 registers:
21   - { id: 0, class: fpr64, preferred-register: '' }
22   - { id: 1, class: fpr64, preferred-register: '' }
23   - { id: 2, class: fpr64, preferred-register: '' }
24   - { id: 3, class: fpr128, preferred-register: '' }
25   - { id: 4, class: fpr64, preferred-register: '' }
26   - { id: 5, class: fpr128, preferred-register: '' }
27   - { id: 6, class: fpr128, preferred-register: '' }
28   - { id: 7, class: fpr64, preferred-register: '' }
29   - { id: 8, class: fpr128, preferred-register: '' }
30   - { id: 9, class: fpr128, preferred-register: '' }
31   - { id: 10, class: fpr64, preferred-register: '' }
32   - { id: 11, class: fpr128, preferred-register: '' }
33   - { id: 12, class: fpr128, preferred-register: '' }
34   - { id: 13, class: fpr128, preferred-register: '' }
35   - { id: 14, class: gpr32all, preferred-register: '' }
36   - { id: 15, class: gpr64all, preferred-register: '' }
37 liveins:
38   - { reg: '$d0', virtual-reg: '%0' }
39   - { reg: '$d1', virtual-reg: '%1' }
40   - { reg: '$d2', virtual-reg: '%2' }
41   - { reg: '$q3', virtual-reg: '%3' }
42 frameInfo:
43   isFrameAddressTaken: false
44   isReturnAddressTaken: false
45   hasStackMap:     false
46   hasPatchPoint:   false
47   stackSize:       0
48   offsetAdjustment: 0
49   maxAlignment:    8
50   adjustsStack:    true
51   hasCalls:        true
52   stackProtector:  ''
53   maxCallFrameSize: 0
54   cvBytesOfCalleeSavedRegisters: 0
55   hasOpaqueSPAdjustment: false
56   hasVAStart:      false
57   hasMustTailInVarArgFunc: false
58   hasTailCall:     false
59   localFrameSize:  0
60   savePoint:       ''
61   restorePoint:    ''
62 fixedStack:      []
63 stack:
64   - { id: 0, name: '', type: default, offset: 0, size: 4, alignment: 4, 
65       stack-id: default, callee-saved-register: '', callee-saved-restored: true, 
66       debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
67   - { id: 1, name: '', type: default, offset: 0, size: 2, alignment: 4, 
68       stack-id: default, callee-saved-register: '', callee-saved-restored: true, 
69       debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
70   - { id: 2, name: '', type: default, offset: 0, size: 1, alignment: 4, 
71       stack-id: default, callee-saved-register: '', callee-saved-restored: true, 
72       debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
73   - { id: 3, name: '', type: default, offset: 0, size: 8, alignment: 8, 
74       stack-id: default, callee-saved-register: '', callee-saved-restored: true, 
75       debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
76 callSites:       []
77 debugValueSubstitutions: []
78 constants:       []
79 machineFunctionInfo: {}
80 body:             |
81   bb.0.entry:
82     liveins: $d0, $d1, $d2, $q3
83   
84     %3:fpr128 = COPY $q3
85     %2:fpr64 = COPY $d2
86     %1:fpr64 = COPY $d1
87     %0:fpr64 = COPY $d0
88     %4:fpr64 = SSHRv2i32_shift %0, 1
89     %6:fpr128 = IMPLICIT_DEF
90     %5:fpr128 = INSERT_SUBREG %6, killed %4, %subreg.dsub
91     %7:fpr64 = SSHRv4i16_shift %1, 1
92     %9:fpr128 = IMPLICIT_DEF
93     %8:fpr128 = INSERT_SUBREG %9, killed %7, %subreg.dsub
94     %10:fpr64 = SSHRv8i8_shift %2, 1
95     %12:fpr128 = IMPLICIT_DEF
96     %11:fpr128 = INSERT_SUBREG %12, killed %10, %subreg.dsub
97     %13:fpr128 = SSHRv2i64_shift %3, 1
98     ST1i64 killed %13, 1, %stack.3 :: (store (s64) into %stack.3)
99     ST1i16 killed %8, 1, %stack.1 :: (store (s16) into %stack.1, align 4)
100     ST1i32 killed %5, 1, %stack.0 :: (store (s32) into %stack.0)
101     ST1i8 killed %11, 1, %stack.2 :: (store (s8) into %stack.2, align 4)
102     ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp
103     %14:gpr32all = IMPLICIT_DEF
104     $w0 = COPY %14
105     %15:gpr64all = IMPLICIT_DEF
106     STATEPOINT 2, 4, 1, killed %15, $w0, 2, 0, 2, 0, 2, 4, 1, 4, %stack.0, 0, 1, 2, %stack.1, 0, 1, 1, %stack.2, 0, 1, 8, %stack.3, 0, 2, 0, 2, 0, 2, 0, csr_aarch64_aapcs, implicit-def $sp :: (volatile load store (s32) on %stack.0), (volatile load store (s16) on %stack.1, align 4), (volatile load store (s8) on %stack.2, align 4), (volatile load store (s64) on %stack.3)
107     ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp
108     RET_ReallyLR