1
1
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2
+ # RUN: llc -O0 -mtriple=aarch64-apple-ios -mattr=+sve -aarch64-enable-gisel-sve=1 -global-isel -start-before=legalizer -stop-after=instruction-select %s -o - | FileCheck %s --check-prefixes=CHECK,CHECK-SELECT
2
3
# RUN: llc -O0 -mtriple=aarch64-apple-ios -mattr=+sve -aarch64-enable-gisel-sve=1 -global-isel -start-before=legalizer -stop-after=regbankselect %s -o - | FileCheck %s --check-prefixes=CHECK,CHECK-REGBANK
3
4
# RUN: llc -O0 -mtriple=aarch64-apple-ios -mattr=+sve -aarch64-enable-gisel-sve=1 -global-isel -run-pass=legalizer %s -o - | FileCheck %s --check-prefixes=CHECK,CHECK-LEGAL
4
5
8
9
name : test_splat_vector_s64
9
10
body : |
10
11
bb.1:
12
+ ; CHECK-SELECT-LABEL: name: test_splat_vector_s64
13
+ ; CHECK-SELECT: %imm:gpr64sp = COPY $x0
14
+ ; CHECK-SELECT-NEXT: %splat:zpr = DUP_ZR_D %imm
15
+ ; CHECK-SELECT-NEXT: $z0 = COPY %splat
16
+ ;
11
17
; CHECK-REGBANK-LABEL: name: test_splat_vector_s64
12
18
; CHECK-REGBANK: %imm:gpr(s64) = COPY $x0
13
19
; CHECK-REGBANK-NEXT: %splat:fpr(<vscale x 2 x s64>) = G_SPLAT_VECTOR %imm(s64)
@@ -25,6 +31,12 @@ body: |
25
31
name : test_splat_vector_s64_const
26
32
body : |
27
33
bb.1:
34
+ ; CHECK-SELECT-LABEL: name: test_splat_vector_s64_const
35
+ ; CHECK-SELECT: [[MOVi32imm:%[0-9]+]]:gpr32 = MOVi32imm 9
36
+ ; CHECK-SELECT-NEXT: %imm:gpr64sp = SUBREG_TO_REG 0, [[MOVi32imm]], %subreg.sub_32
37
+ ; CHECK-SELECT-NEXT: %splat:zpr = DUP_ZR_D %imm
38
+ ; CHECK-SELECT-NEXT: $z0 = COPY %splat
39
+ ;
28
40
; CHECK-REGBANK-LABEL: name: test_splat_vector_s64_const
29
41
; CHECK-REGBANK: %imm:gpr(s64) = G_CONSTANT i64 9
30
42
; CHECK-REGBANK-NEXT: %splat:fpr(<vscale x 2 x s64>) = G_SPLAT_VECTOR %imm(s64)
@@ -42,6 +54,12 @@ body: |
42
54
name : test_splat_vector_s64_fconst
43
55
body : |
44
56
bb.1:
57
+ ; CHECK-SELECT-LABEL: name: test_splat_vector_s64_fconst
58
+ ; CHECK-SELECT: %imm:fpr64 = FMOVDi 34
59
+ ; CHECK-SELECT-NEXT: [[COPY:%[0-9]+]]:gpr64sp = COPY %imm
60
+ ; CHECK-SELECT-NEXT: %splat:zpr = DUP_ZR_D [[COPY]]
61
+ ; CHECK-SELECT-NEXT: $z0 = COPY %splat
62
+ ;
45
63
; CHECK-REGBANK-LABEL: name: test_splat_vector_s64_fconst
46
64
; CHECK-REGBANK: %imm:fpr(s64) = G_FCONSTANT double 9.000000e+00
47
65
; CHECK-REGBANK-NEXT: [[COPY:%[0-9]+]]:gpr(s64) = COPY %imm(s64)
@@ -60,6 +78,11 @@ body: |
60
78
name : test_splat_vector_s32
61
79
body : |
62
80
bb.1:
81
+ ; CHECK-SELECT-LABEL: name: test_splat_vector_s32
82
+ ; CHECK-SELECT: %imm:gpr32sp = COPY $w0
83
+ ; CHECK-SELECT-NEXT: %splat:zpr = DUP_ZR_S %imm
84
+ ; CHECK-SELECT-NEXT: $z0 = COPY %splat
85
+ ;
63
86
; CHECK-REGBANK-LABEL: name: test_splat_vector_s32
64
87
; CHECK-REGBANK: %imm:gpr(s32) = COPY $w0
65
88
; CHECK-REGBANK-NEXT: %splat:fpr(<vscale x 4 x s32>) = G_SPLAT_VECTOR %imm(s32)
@@ -77,6 +100,11 @@ body: |
77
100
name : test_splat_vector_s32_const
78
101
body : |
79
102
bb.1:
103
+ ; CHECK-SELECT-LABEL: name: test_splat_vector_s32_const
104
+ ; CHECK-SELECT: %imm:gpr32common = MOVi32imm 9
105
+ ; CHECK-SELECT-NEXT: %splat:zpr = DUP_ZR_S %imm
106
+ ; CHECK-SELECT-NEXT: $z0 = COPY %splat
107
+ ;
80
108
; CHECK-REGBANK-LABEL: name: test_splat_vector_s32_const
81
109
; CHECK-REGBANK: %imm:gpr(s32) = G_CONSTANT i32 9
82
110
; CHECK-REGBANK-NEXT: %splat:fpr(<vscale x 4 x s32>) = G_SPLAT_VECTOR %imm(s32)
@@ -94,6 +122,12 @@ body: |
94
122
name : test_splat_vector_s32_fconst
95
123
body : |
96
124
bb.1:
125
+ ; CHECK-SELECT-LABEL: name: test_splat_vector_s32_fconst
126
+ ; CHECK-SELECT: %imm:fpr32 = FMOVSi 28
127
+ ; CHECK-SELECT-NEXT: [[COPY:%[0-9]+]]:gpr32sp = COPY %imm
128
+ ; CHECK-SELECT-NEXT: %splat:zpr = DUP_ZR_S [[COPY]]
129
+ ; CHECK-SELECT-NEXT: $z0 = COPY %splat
130
+ ;
97
131
; CHECK-REGBANK-LABEL: name: test_splat_vector_s32_fconst
98
132
; CHECK-REGBANK: %imm:fpr(s32) = G_FCONSTANT float 7.000000e+00
99
133
; CHECK-REGBANK-NEXT: [[COPY:%[0-9]+]]:gpr(s32) = COPY %imm(s32)
0 commit comments