Skip to content

Commit 2f090ce

Browse files
committed
[AArch64] add splat shuffle combine test; NFC
1 parent 84e6fd8 commit 2f090ce

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

llvm/test/CodeGen/AArch64/arm64-dup.ll

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -442,3 +442,21 @@ define <4 x float> @test_perfectshuffle_dupext_v4f32(<4 x float> %a, <4 x float>
442442
%r = shufflevector <4 x float> %a, <4 x float> %b, <4 x i32> <i32 0, i32 0, i32 4, i32 5>
443443
ret <4 x float> %r
444444
}
445+
446+
define void @disguised_dup(<4 x float> %x, <4 x float>* %p1, <4 x float>* %p2) {
447+
; CHECK-LABEL: disguised_dup:
448+
; CHECK: // %bb.0:
449+
; CHECK-NEXT: dup.4s v1, v0[0]
450+
; CHECK-NEXT: ext.16b v0, v0, v0, #12
451+
; CHECK-NEXT: ext.16b v0, v0, v1, #8
452+
; CHECK-NEXT: zip2.4s v1, v0, v0
453+
; CHECK-NEXT: ext.16b v1, v0, v1, #12
454+
; CHECK-NEXT: str q0, [x0]
455+
; CHECK-NEXT: str q1, [x1]
456+
; CHECK-NEXT: ret
457+
%shuf = shufflevector <4 x float> %x, <4 x float> undef, <4 x i32> <i32 1, i32 2, i32 0, i32 0>
458+
%dup = shufflevector <4 x float> %shuf, <4 x float> undef, <4 x i32> <i32 3, i32 2, i32 2, i32 3>
459+
store <4 x float> %shuf, <4 x float>* %p1, align 8
460+
store <4 x float> %dup, <4 x float>* %p2, align 8
461+
ret void
462+
}

0 commit comments

Comments
 (0)