@@ -202,16 +202,13 @@ define bfloat @test_fmadd(bfloat %a, bfloat %b, bfloat %c) #0 {
202202;
203203; CHECK-BF16-LABEL: test_fmadd:
204204; CHECK-BF16: // %bb.0:
205+ ; CHECK-BF16-NEXT: // kill: def $h2 killed $h2 def $d2
205206; CHECK-BF16-NEXT: // kill: def $h1 killed $h1 def $d1
206207; CHECK-BF16-NEXT: // kill: def $h0 killed $h0 def $d0
207- ; CHECK-BF16-NEXT: // kill: def $h2 killed $h2 def $d2
208208; CHECK-BF16-NEXT: shll v1.4s, v1.4h, #16
209209; CHECK-BF16-NEXT: shll v0.4s, v0.4h, #16
210- ; CHECK-BF16-NEXT: fmul s0, s0, s1
211- ; CHECK-BF16-NEXT: shll v1.4s, v2.4h, #16
212- ; CHECK-BF16-NEXT: bfcvt h0, s0
213- ; CHECK-BF16-NEXT: shll v0.4s, v0.4h, #16
214- ; CHECK-BF16-NEXT: fadd s0, s0, s1
210+ ; CHECK-BF16-NEXT: shll v2.4s, v2.4h, #16
211+ ; CHECK-BF16-NEXT: fmadd s0, s0, s1, s2
215212; CHECK-BF16-NEXT: bfcvt h0, s0
216213; CHECK-BF16-NEXT: ret
217214 %mul = fmul fast bfloat %a , %b
@@ -1996,13 +1993,11 @@ define bfloat @test_copysign_f64(bfloat %a, double %b) #0 {
19961993define float @test_copysign_extended (bfloat %a , bfloat %b ) #0 {
19971994; CHECK-CVT-LABEL: test_copysign_extended:
19981995; CHECK-CVT: // %bb.0:
1999- ; CHECK-CVT-NEXT: // kill: def $h0 killed $h0 def $d0
2000- ; CHECK-CVT-NEXT: movi v2.4s, #16
20011996; CHECK-CVT-NEXT: // kill: def $h1 killed $h1 def $d1
2002- ; CHECK-CVT-NEXT: ushll v0.4s, v0.4h, #0
2003- ; CHECK-CVT-NEXT: shll v1.4s, v1.4h, #16
2004- ; CHECK-CVT-NEXT: ushl v0.4s, v0.4s, v2.4s
1997+ ; CHECK-CVT-NEXT: // kill: def $h0 killed $h0 def $d0
20051998; CHECK-CVT-NEXT: mvni v2.4s, #128, lsl #24
1999+ ; CHECK-CVT-NEXT: shll v1.4s, v1.4h, #16
2000+ ; CHECK-CVT-NEXT: shll v0.4s, v0.4h, #16
20062001; CHECK-CVT-NEXT: bif v0.16b, v1.16b, v2.16b
20072002; CHECK-CVT-NEXT: fmov w8, s0
20082003; CHECK-CVT-NEXT: lsr w8, w8, #16
@@ -2013,16 +2008,12 @@ define float @test_copysign_extended(bfloat %a, bfloat %b) #0 {
20132008;
20142009; CHECK-SD-LABEL: test_copysign_extended:
20152010; CHECK-SD: // %bb.0:
2016- ; CHECK-SD-NEXT: // kill: def $h0 killed $h0 def $d0
2017- ; CHECK-SD-NEXT: movi v2.4s, #16
20182011; CHECK-SD-NEXT: // kill: def $h1 killed $h1 def $d1
2019- ; CHECK-SD-NEXT: ushll v0.4s, v0.4h, #0
2020- ; CHECK-SD-NEXT: shll v1.4s, v1.4h, #16
2021- ; CHECK-SD-NEXT: ushl v0.4s, v0.4s, v2.4s
2012+ ; CHECK-SD-NEXT: // kill: def $h0 killed $h0 def $d0
20222013; CHECK-SD-NEXT: mvni v2.4s, #128, lsl #24
2023- ; CHECK-SD-NEXT: bif v0.16b, v1.16b, v2.16b
2024- ; CHECK-SD-NEXT: bfcvt h0, s0
2014+ ; CHECK-SD-NEXT: shll v1.4s, v1.4h, #16
20252015; CHECK-SD-NEXT: shll v0.4s, v0.4h, #16
2016+ ; CHECK-SD-NEXT: bif v0.16b, v1.16b, v2.16b
20262017; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0
20272018; CHECK-SD-NEXT: ret
20282019;
0 commit comments