@@ -1108,61 +1108,54 @@ define <7 x i32> @v7f16_i32(<7 x half> %a, <7 x half> %b, <7 x i32> %d, <7 x i32
1108
1108
;
1109
1109
; CHECK-GI-FP16-LABEL: v7f16_i32:
1110
1110
; CHECK-GI-FP16: // %bb.0: // %entry
1111
- ; CHECK-GI-FP16-NEXT: fcmgt v1 .8h, v1.8h, v0.8h
1112
- ; CHECK-GI-FP16-NEXT: mov w12 , #31 // =0x1f
1113
- ; CHECK-GI-FP16-NEXT: ldr s4 , [sp]
1114
- ; CHECK-GI-FP16-NEXT: fmov s2, w12
1111
+ ; CHECK-GI-FP16-NEXT: fcmgt v0 .8h, v1.8h, v0.8h
1112
+ ; CHECK-GI-FP16-NEXT: mov w10 , #31 // =0x1f
1113
+ ; CHECK-GI-FP16-NEXT: ldr s3 , [sp]
1114
+ ; CHECK-GI-FP16-NEXT: fmov s1, w10
1115
1115
; CHECK-GI-FP16-NEXT: fmov s6, w0
1116
- ; CHECK-GI-FP16-NEXT: ldr s5 , [sp, #8]
1116
+ ; CHECK-GI-FP16-NEXT: ldr s4 , [sp, #8]
1117
1117
; CHECK-GI-FP16-NEXT: ldr s7, [sp, #24]
1118
1118
; CHECK-GI-FP16-NEXT: ldr s16, [sp, #32]
1119
- ; CHECK-GI-FP16-NEXT: umov w9, v1.h[4]
1120
- ; CHECK-GI-FP16-NEXT: umov w8, v1.h[0]
1121
- ; CHECK-GI-FP16-NEXT: umov w11, v1.h[5]
1122
- ; CHECK-GI-FP16-NEXT: umov w10, v1.h[1]
1123
- ; CHECK-GI-FP16-NEXT: mov v2.s[1], w12
1124
- ; CHECK-GI-FP16-NEXT: umov w13, v1.h[2]
1119
+ ; CHECK-GI-FP16-NEXT: umov w8, v0.h[4]
1120
+ ; CHECK-GI-FP16-NEXT: umov w9, v0.h[5]
1121
+ ; CHECK-GI-FP16-NEXT: mov v1.s[1], w10
1125
1122
; CHECK-GI-FP16-NEXT: mov v6.s[1], w1
1126
1123
; CHECK-GI-FP16-NEXT: mov v7.s[1], v16.s[0]
1127
1124
; CHECK-GI-FP16-NEXT: ldr s16, [sp, #40]
1128
- ; CHECK-GI-FP16-NEXT: fmov s3, w9
1129
- ; CHECK-GI-FP16-NEXT: fmov s0, w8
1130
- ; CHECK-GI-FP16-NEXT: umov w8, v1.h[6]
1131
- ; CHECK-GI-FP16-NEXT: mov v2.s[2], w12
1132
- ; CHECK-GI-FP16-NEXT: umov w9, v1.h[3]
1125
+ ; CHECK-GI-FP16-NEXT: fmov s2, w8
1126
+ ; CHECK-GI-FP16-NEXT: umov w8, v0.h[6]
1127
+ ; CHECK-GI-FP16-NEXT: mov v1.s[2], w10
1128
+ ; CHECK-GI-FP16-NEXT: ushll v0.4s, v0.4h, #0
1133
1129
; CHECK-GI-FP16-NEXT: mov v6.s[2], w2
1134
1130
; CHECK-GI-FP16-NEXT: mov v7.s[2], v16.s[0]
1135
- ; CHECK-GI-FP16-NEXT: mov v3 .s[1], w11
1136
- ; CHECK-GI-FP16-NEXT: mov v0.s[1], w10
1137
- ; CHECK-GI-FP16-NEXT: mov w10, #-1 // =0xffffffff
1138
- ; CHECK-GI-FP16-NEXT: fmov s1, w10
1139
- ; CHECK-GI-FP16-NEXT: neg v17 .4s, v2 .4s
1131
+ ; CHECK-GI-FP16-NEXT: mov v2 .s[1], w9
1132
+ ; CHECK-GI-FP16-NEXT: mov w9, #-1 // =0xffffffff
1133
+ ; CHECK-GI-FP16-NEXT: fmov s5, w9
1134
+ ; CHECK-GI-FP16-NEXT: neg v17.4s, v1.4s
1135
+ ; CHECK-GI-FP16-NEXT: shl v0 .4s, v0 .4s, #31
1140
1136
; CHECK-GI-FP16-NEXT: mov v6.s[3], w3
1137
+ ; CHECK-GI-FP16-NEXT: mov v2.s[2], w8
1138
+ ; CHECK-GI-FP16-NEXT: fmov w8, s3
1139
+ ; CHECK-GI-FP16-NEXT: fmov s3, w7
1140
+ ; CHECK-GI-FP16-NEXT: mov v5.s[1], w9
1141
+ ; CHECK-GI-FP16-NEXT: sshr v0.4s, v0.4s, #31
1142
+ ; CHECK-GI-FP16-NEXT: mov v3.s[1], w8
1143
+ ; CHECK-GI-FP16-NEXT: fmov w8, s4
1144
+ ; CHECK-GI-FP16-NEXT: ldr s4, [sp, #16]
1145
+ ; CHECK-GI-FP16-NEXT: ushl v1.4s, v2.4s, v1.4s
1146
+ ; CHECK-GI-FP16-NEXT: fmov s2, w4
1147
+ ; CHECK-GI-FP16-NEXT: mov v5.s[2], w9
1148
+ ; CHECK-GI-FP16-NEXT: mov v2.s[1], w5
1141
1149
; CHECK-GI-FP16-NEXT: mov v3.s[2], w8
1150
+ ; CHECK-GI-FP16-NEXT: sshl v1.4s, v1.4s, v17.4s
1142
1151
; CHECK-GI-FP16-NEXT: fmov w8, s4
1143
- ; CHECK-GI-FP16-NEXT: fmov s4, w7
1144
- ; CHECK-GI-FP16-NEXT: mov v0.s[2], w13
1145
- ; CHECK-GI-FP16-NEXT: mov v1.s[1], w10
1146
- ; CHECK-GI-FP16-NEXT: mov v4.s[1], w8
1147
- ; CHECK-GI-FP16-NEXT: fmov w8, s5
1148
- ; CHECK-GI-FP16-NEXT: ldr s5, [sp, #16]
1149
- ; CHECK-GI-FP16-NEXT: ushl v2.4s, v3.4s, v2.4s
1150
- ; CHECK-GI-FP16-NEXT: fmov s3, w4
1151
- ; CHECK-GI-FP16-NEXT: mov v0.s[3], w9
1152
- ; CHECK-GI-FP16-NEXT: mov v1.s[2], w10
1153
- ; CHECK-GI-FP16-NEXT: mov v3.s[1], w5
1154
- ; CHECK-GI-FP16-NEXT: mov v4.s[2], w8
1155
- ; CHECK-GI-FP16-NEXT: sshl v2.4s, v2.4s, v17.4s
1156
- ; CHECK-GI-FP16-NEXT: fmov w8, s5
1157
- ; CHECK-GI-FP16-NEXT: shl v0.4s, v0.4s, #31
1158
- ; CHECK-GI-FP16-NEXT: eor v1.16b, v2.16b, v1.16b
1159
- ; CHECK-GI-FP16-NEXT: mov v3.s[2], w6
1160
- ; CHECK-GI-FP16-NEXT: mov v4.s[3], w8
1161
- ; CHECK-GI-FP16-NEXT: sshr v0.4s, v0.4s, #31
1162
- ; CHECK-GI-FP16-NEXT: and v1.16b, v7.16b, v1.16b
1163
- ; CHECK-GI-FP16-NEXT: and v2.16b, v3.16b, v2.16b
1164
- ; CHECK-GI-FP16-NEXT: bsl v0.16b, v6.16b, v4.16b
1165
- ; CHECK-GI-FP16-NEXT: orr v1.16b, v2.16b, v1.16b
1152
+ ; CHECK-GI-FP16-NEXT: eor v4.16b, v1.16b, v5.16b
1153
+ ; CHECK-GI-FP16-NEXT: mov v2.s[2], w6
1154
+ ; CHECK-GI-FP16-NEXT: mov v3.s[3], w8
1155
+ ; CHECK-GI-FP16-NEXT: and v1.16b, v2.16b, v1.16b
1156
+ ; CHECK-GI-FP16-NEXT: and v2.16b, v7.16b, v4.16b
1157
+ ; CHECK-GI-FP16-NEXT: bsl v0.16b, v6.16b, v3.16b
1158
+ ; CHECK-GI-FP16-NEXT: orr v1.16b, v1.16b, v2.16b
1166
1159
; CHECK-GI-FP16-NEXT: mov s2, v0.s[1]
1167
1160
; CHECK-GI-FP16-NEXT: mov s3, v0.s[2]
1168
1161
; CHECK-GI-FP16-NEXT: mov s4, v0.s[3]
0 commit comments