@@ -73,6 +73,121 @@ define void @call_v1i32(ptr %p) nounwind {
73
73
ret void
74
74
}
75
75
76
+ define void @arg_v1i80 (<1 x i80 > %vec , ptr %p ) {
77
+ ; MIPS64-LABEL: arg_v1i80:
78
+ ; MIPS64: # %bb.0:
79
+ ; MIPS64-NEXT: sh $5, 8($6)
80
+ ; MIPS64-NEXT: dsrl $1, $5, 16
81
+ ; MIPS64-NEXT: dsll $2, $4, 48
82
+ ; MIPS64-NEXT: or $1, $2, $1
83
+ ; MIPS64-NEXT: jr $ra
84
+ ; MIPS64-NEXT: sd $1, 0($6)
85
+ ;
86
+ ; MIPS32-LABEL: arg_v1i80:
87
+ ; MIPS32: # %bb.0:
88
+ ; MIPS32-NEXT: sll $1, $5, 16
89
+ ; MIPS32-NEXT: srl $2, $6, 16
90
+ ; MIPS32-NEXT: sh $6, 8($7)
91
+ ; MIPS32-NEXT: or $1, $2, $1
92
+ ; MIPS32-NEXT: sw $1, 4($7)
93
+ ; MIPS32-NEXT: srl $1, $5, 16
94
+ ; MIPS32-NEXT: sll $2, $4, 16
95
+ ; MIPS32-NEXT: or $1, $2, $1
96
+ ; MIPS32-NEXT: jr $ra
97
+ ; MIPS32-NEXT: sw $1, 0($7)
98
+ store <1 x i80 > %vec , ptr %p
99
+ ret void
100
+ }
101
+
102
+ define <1 x i80 > @ret_v1i80 (ptr %p ) {
103
+ ; MIPS64-LABEL: ret_v1i80:
104
+ ; MIPS64: # %bb.0:
105
+ ; MIPS64-NEXT: lhu $1, 8($4)
106
+ ; MIPS64-NEXT: ld $2, 0($4)
107
+ ; MIPS64-NEXT: dsll $3, $2, 16
108
+ ; MIPS64-NEXT: or $3, $1, $3
109
+ ; MIPS64-NEXT: jr $ra
110
+ ; MIPS64-NEXT: dsrl $2, $2, 48
111
+ ;
112
+ ; MIPS32-LABEL: ret_v1i80:
113
+ ; MIPS32: # %bb.0:
114
+ ; MIPS32-NEXT: lw $1, 4($4)
115
+ ; MIPS32-NEXT: srl $2, $1, 16
116
+ ; MIPS32-NEXT: lw $5, 0($4)
117
+ ; MIPS32-NEXT: sll $3, $5, 16
118
+ ; MIPS32-NEXT: or $3, $3, $2
119
+ ; MIPS32-NEXT: lhu $2, 8($4)
120
+ ; MIPS32-NEXT: sll $1, $1, 16
121
+ ; MIPS32-NEXT: or $4, $2, $1
122
+ ; MIPS32-NEXT: jr $ra
123
+ ; MIPS32-NEXT: srl $2, $5, 16
124
+ %v = load <1 x i80 >, ptr %p
125
+ ret <1 x i80 > %v
126
+ }
127
+
128
+ define void @call_v1i80 (ptr %p ) nounwind {
129
+ ; MIPS64-LABEL: call_v1i80:
130
+ ; MIPS64: # %bb.0:
131
+ ; MIPS64-NEXT: daddiu $sp, $sp, -16
132
+ ; MIPS64-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill
133
+ ; MIPS64-NEXT: sd $16, 0($sp) # 8-byte Folded Spill
134
+ ; MIPS64-NEXT: move $16, $4
135
+ ; MIPS64-NEXT: lhu $1, 8($4)
136
+ ; MIPS64-NEXT: ld $2, 0($4)
137
+ ; MIPS64-NEXT: dsll $3, $2, 16
138
+ ; MIPS64-NEXT: or $5, $1, $3
139
+ ; MIPS64-NEXT: jal arg_v1i80
140
+ ; MIPS64-NEXT: dsrl $4, $2, 48
141
+ ; MIPS64-NEXT: jal ret_v1i80
142
+ ; MIPS64-NEXT: nop
143
+ ; MIPS64-NEXT: sh $3, 8($16)
144
+ ; MIPS64-NEXT: dsrl $1, $3, 16
145
+ ; MIPS64-NEXT: dsll $2, $2, 48
146
+ ; MIPS64-NEXT: or $1, $2, $1
147
+ ; MIPS64-NEXT: sd $1, 0($16)
148
+ ; MIPS64-NEXT: ld $16, 0($sp) # 8-byte Folded Reload
149
+ ; MIPS64-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload
150
+ ; MIPS64-NEXT: jr $ra
151
+ ; MIPS64-NEXT: daddiu $sp, $sp, 16
152
+ ;
153
+ ; MIPS32-LABEL: call_v1i80:
154
+ ; MIPS32: # %bb.0:
155
+ ; MIPS32-NEXT: addiu $sp, $sp, -24
156
+ ; MIPS32-NEXT: sw $ra, 20($sp) # 4-byte Folded Spill
157
+ ; MIPS32-NEXT: sw $16, 16($sp) # 4-byte Folded Spill
158
+ ; MIPS32-NEXT: move $16, $4
159
+ ; MIPS32-NEXT: lw $1, 4($4)
160
+ ; MIPS32-NEXT: srl $2, $1, 16
161
+ ; MIPS32-NEXT: lw $3, 0($4)
162
+ ; MIPS32-NEXT: sll $4, $3, 16
163
+ ; MIPS32-NEXT: or $5, $4, $2
164
+ ; MIPS32-NEXT: lhu $2, 8($16)
165
+ ; MIPS32-NEXT: sll $1, $1, 16
166
+ ; MIPS32-NEXT: or $6, $2, $1
167
+ ; MIPS32-NEXT: jal arg_v1i80
168
+ ; MIPS32-NEXT: srl $4, $3, 16
169
+ ; MIPS32-NEXT: jal ret_v1i80
170
+ ; MIPS32-NEXT: nop
171
+ ; MIPS32-NEXT: sh $4, 8($16)
172
+ ; MIPS32-NEXT: sll $1, $3, 16
173
+ ; MIPS32-NEXT: srl $4, $4, 16
174
+ ; MIPS32-NEXT: or $1, $4, $1
175
+ ; MIPS32-NEXT: sw $1, 4($16)
176
+ ; MIPS32-NEXT: srl $1, $3, 16
177
+ ; MIPS32-NEXT: sll $2, $2, 16
178
+ ; MIPS32-NEXT: or $1, $2, $1
179
+ ; MIPS32-NEXT: sw $1, 0($16)
180
+ ; MIPS32-NEXT: lw $16, 16($sp) # 4-byte Folded Reload
181
+ ; MIPS32-NEXT: lw $ra, 20($sp) # 4-byte Folded Reload
182
+ ; MIPS32-NEXT: jr $ra
183
+ ; MIPS32-NEXT: addiu $sp, $sp, 24
184
+ %v1 = load <1 x i80 >, ptr %p
185
+ call void @arg_v1i80 (<1 x i80 > %v1 )
186
+ %v2 = call <1 x i80 > @ret_v1i80 ()
187
+ store <1 x i80 > %v2 , ptr %p
188
+ ret void
189
+ }
190
+
76
191
define void @arg_v2i32 (<2 x i32 > %vec , ptr %p ) {
77
192
; MIPS64-LABEL: arg_v2i32:
78
193
; MIPS64: # %bb.0:
0 commit comments