Home
last modified time | relevance | path

Searched refs:DIV (Results 1 – 25 of 135) sorted by relevance

123456

/llvm-project-15.0.7/llvm/test/Transforms/InstCombine/
H A Dsrem-via-sdiv-mul-sub.ll19 ; CHECK-NEXT: [[DIV:%.*]] = sdiv i8 [[X:%.*]], [[Y:%.*]]
20 ; CHECK-NEXT: call void @use8(i8 [[DIV]])
35 ; CHECK-NEXT: call void @use2xi8(<2 x i8> [[DIV]])
51 ; CHECK-NEXT: [[DIV:%.*]] = sdiv i8 [[X:%.*]], [[Y:%.*]]
52 ; CHECK-NEXT: call void @use8(i8 [[DIV]])
73 ; CHECK-NEXT: [[DIV:%.*]] = sdiv i8 [[X:%.*]], [[Y]]
74 ; CHECK-NEXT: call void @use8(i8 [[DIV]])
91 ; CHECK-NEXT: [[DIV:%.*]] = sdiv i8 [[X0:%.*]], [[Y:%.*]]
92 ; CHECK-NEXT: call void @use8(i8 [[DIV]])
106 ; CHECK-NEXT: [[DIV:%.*]] = sdiv i8 [[X:%.*]], [[Y0:%.*]]
[all …]
H A Durem-via-udiv-mul-sub.ll19 ; CHECK-NEXT: [[DIV:%.*]] = udiv i8 [[X:%.*]], [[Y:%.*]]
20 ; CHECK-NEXT: call void @use8(i8 [[DIV]])
35 ; CHECK-NEXT: call void @use2xi8(<2 x i8> [[DIV]])
51 ; CHECK-NEXT: [[DIV:%.*]] = udiv i8 [[X:%.*]], [[Y:%.*]]
52 ; CHECK-NEXT: call void @use8(i8 [[DIV]])
73 ; CHECK-NEXT: [[DIV:%.*]] = udiv i8 [[X:%.*]], [[Y]]
74 ; CHECK-NEXT: call void @use8(i8 [[DIV]])
91 ; CHECK-NEXT: [[DIV:%.*]] = udiv i8 [[X0:%.*]], [[Y:%.*]]
92 ; CHECK-NEXT: call void @use8(i8 [[DIV]])
106 ; CHECK-NEXT: [[DIV:%.*]] = udiv i8 [[X:%.*]], [[Y0:%.*]]
[all …]
H A Dsdiv-exact-by-power-of-two.ll12 ; CHECK-NEXT: [[DIV:%.*]] = ashr exact i8 [[X:%.*]], 5
13 ; CHECK-NEXT: ret i8 [[DIV]]
20 ; CHECK-NEXT: [[DIV:%.*]] = sdiv i8 [[X:%.*]], 32
21 ; CHECK-NEXT: ret i8 [[DIV]]
29 ; CHECK-NEXT: [[DIV:%.*]] = zext i1 [[TMP1]] to i8
30 ; CHECK-NEXT: ret i8 [[DIV]]
38 ; CHECK-NEXT: [[DIV:%.*]] = ashr exact <2 x i8> [[X:%.*]], <i8 5, i8 5>
39 ; CHECK-NEXT: ret <2 x i8> [[DIV]]
47 ; CHECK-NEXT: [[DIV:%.*]] = ashr exact <2 x i8> [[X:%.*]], <i8 5, i8 4>
48 ; CHECK-NEXT: ret <2 x i8> [[DIV]]
[all …]
H A Dsdiv-exact-by-negative-power-of-two.ll12 ; CHECK-NEXT: [[DIV:%.*]] = sub nsw i8 0, [[DIV_NEG]]
13 ; CHECK-NEXT: ret i8 [[DIV]]
20 ; CHECK-NEXT: [[DIV:%.*]] = sdiv i8 [[X:%.*]], -32
21 ; CHECK-NEXT: ret i8 [[DIV]]
30 ; CHECK-NEXT: [[DIV:%.*]] = sub nsw <2 x i8> zeroinitializer, [[DIV_NEG]]
31 ; CHECK-NEXT: ret <2 x i8> [[DIV]]
40 ; CHECK-NEXT: [[DIV:%.*]] = sub <2 x i8> zeroinitializer, [[DIV_NEG]]
41 ; CHECK-NEXT: ret <2 x i8> [[DIV]]
49 ; CHECK-NEXT: [[DIV:%.*]] = sdiv exact <2 x i8> [[X:%.*]], <i8 -32, i8 16>
50 ; CHECK-NEXT: ret <2 x i8> [[DIV]]
H A Dfdiv.ll17 ; CHECK-NEXT: ret float [[DIV]]
28 ; CHECK-NEXT: ret float [[DIV]]
39 ; CHECK-NEXT: ret float [[DIV]]
50 ; CHECK-NEXT: ret float [[DIV]]
61 ; CHECK-NEXT: ret float [[DIV]]
73 ; CHECK-NEXT: ret float [[DIV]]
227 ; CHECK-NEXT: ret float [[DIV]]
238 ; CHECK-NEXT: ret float [[DIV]]
249 ; CHECK-NEXT: ret float [[DIV]]
260 ; CHECK-NEXT: ret float [[DIV]]
[all …]
H A Dsdiv-of-non-negative-by-negative-power-of-two.ll17 ; CHECK-NEXT: [[DIV:%.*]] = sub nsw i8 0, [[TMP1]]
18 ; CHECK-NEXT: ret i8 [[DIV]]
29 ; CHECK-NEXT: [[DIV:%.*]] = sdiv i8 [[X]], -32
30 ; CHECK-NEXT: ret i8 [[DIV]]
41 ; CHECK-NEXT: [[DIV:%.*]] = sdiv i8 [[X]], -31
42 ; CHECK-NEXT: ret i8 [[DIV]]
H A Dbinop-select.ll97 ; CHECK-NEXT: [[DIV:%.*]] = sdiv i32 [[X]], [[COND]]
98 ; CHECK-NEXT: ret i32 [[DIV]]
112 ; CHECK-NEXT: [[DIV:%.*]] = sdiv i32 42, [[COND]]
113 ; CHECK-NEXT: ret i32 [[DIV]]
138 ; CHECK-NEXT: [[DIV:%.*]] = udiv i32 42, [[COND]]
139 ; CHECK-NEXT: ret i32 [[DIV]]
151 ; CHECK-NEXT: [[DIV:%.*]] = srem i32 42, [[COND]]
152 ; CHECK-NEXT: ret i32 [[DIV]]
164 ; CHECK-NEXT: [[DIV:%.*]] = urem i32 42, [[COND]]
165 ; CHECK-NEXT: ret i32 [[DIV]]
[all …]
H A Dfabs-copysign.ll80 ; CHECK-NEXT: [[DIV:%.*]] = fdiv double [[X:%.*]], [[F]]
81 ; CHECK-NEXT: ret double [[DIV]]
91 ; CHECK-NEXT: [[DIV:%.*]] = fdiv double [[F]], [[X:%.*]]
92 ; CHECK-NEXT: ret double [[DIV]]
102 ; CHECK-NEXT: [[DIV:%.*]] = fdiv ninf double [[X]], [[F]]
103 ; CHECK-NEXT: ret double [[DIV]]
113 ; CHECK-NEXT: [[DIV:%.*]] = fdiv nnan double [[X]], [[F]]
114 ; CHECK-NEXT: ret double [[DIV]]
H A Ddiv.ll35 ; CHECK-NEXT: ret <2 x i64> [[DIV]]
52 ; CHECK-NEXT: ret i32 [[DIV]]
103 ; CHECK-NEXT: ret i32 [[DIV]]
324 ; CHECK-NEXT: ret i32 [[DIV]]
334 ; CHECK-NEXT: ret i32 [[DIV]]
344 ; CHECK-NEXT: ret i32 [[DIV]]
364 ; CHECK-NEXT: ret i32 [[DIV]]
374 ; CHECK-NEXT: ret i32 [[DIV]]
384 ; CHECK-NEXT: ret i32 [[DIV]]
394 ; CHECK-NEXT: ret i32 [[DIV]]
[all …]
H A Dudivrem-change-width.ll8 ; CHECK-NEXT: [[DIV:%.*]] = udiv i8 %a, %b
9 ; CHECK-NEXT: ret i8 [[DIV]]
20 ; CHECK-NEXT: [[DIV:%.*]] = udiv <2 x i8> %a, %b
21 ; CHECK-NEXT: ret <2 x i8> [[DIV]]
56 ; CHECK-NEXT: [[DIV:%.*]] = udiv i8 %a, %b
57 ; CHECK-NEXT: [[UDIV:%.*]] = zext i8 [[DIV]] to i32
68 ; CHECK-NEXT: [[DIV:%.*]] = udiv <2 x i8> %a, %b
97 ; CHECK-NEXT: [[DIV:%.*]] = udiv i9 %a, %b
98 ; CHECK-NEXT: [[UDIV:%.*]] = zext i9 [[DIV]] to i32
162 ; CHECK-NEXT: [[DIV:%.*]] = udiv i8 %a, 10
[all …]
H A Dfdiv-cos-sin.ll8 ; CHECK-NEXT: [[DIV:%.*]] = fdiv double [[TMP1]], [[TMP2]]
9 ; CHECK-NEXT: ret double [[DIV]]
21 ; CHECK-NEXT: [[DIV:%.*]] = fdiv double [[TMP1]], [[TMP2]]
22 ; CHECK-NEXT: ret double [[DIV]]
58 ; CHECK-NEXT: [[DIV:%.*]] = fdiv reassoc double [[TMP1]], [[TMP2]]
60 ; CHECK-NEXT: ret double [[DIV]]
85 ; CHECK-NEXT: [[DIV:%.*]] = fdiv reassoc half [[TMP1]], [[TMP2]]
86 ; CHECK-NEXT: ret half [[DIV]]
/llvm-project-15.0.7/llvm/test/CodeGen/ARM/
H A Dsdiv-pow2-arm-size.ll1 ; RUN: llc -mtriple=armv7a -mattr=+hwdiv-arm %s -o - | FileCheck %s --check-prefixes=CHECK,DIV
21 ; DIV: mov r1, #2
22 ; DIV-NEXT: sdiv r0, r0, r1
23 ; DIV-NEXT: sxth r0, r0
24 ; DIV-NEXT: bx lr
41 ; DIV: mov r1, #4
42 ; DIV-NEXT: sdiv r0, r0, r1
43 ; DIV-NEXT: bx lr
59 ; DIV: mov r1, #131072
60 ; DIV-NEXT: sdiv r0, r0, r1
[all …]
/llvm-project-15.0.7/llvm/test/Transforms/InstSimplify/
H A Dsdiv.ll64 ; CHECK-NEXT: [[DIV:%.*]] = sdiv i32 [[NEGX]], [[X]]
65 ; CHECK-NEXT: ret i32 [[DIV]]
76 ; CHECK-NEXT: [[DIV:%.*]] = sdiv i32 [[XY]], [[YX]]
77 ; CHECK-NEXT: ret i32 [[DIV]]
90 ; CHECK-NEXT: ret i32 [[DIV]]
103 ; CHECK-NEXT: ret i32 [[DIV]]
115 ; CHECK-NEXT: ret <2 x i32> [[DIV]]
127 ; CHECK-NEXT: ret <2 x i32> [[DIV]]
140 ; CHECK-NEXT: ret <2 x i32> [[DIV]]
153 ; CHECK-NEXT: ret <2 x i32> [[DIV]]
[all …]
H A Dsigned-div-rem.ll16 ; CHECK-NEXT: [[DIV:%.*]] = sdiv i32 [[CONV]], 128
17 ; CHECK-NEXT: ret i32 [[DIV]]
36 ; CHECK-NEXT: [[DIV:%.*]] = sdiv i32 [[CONV]], -128
37 ; CHECK-NEXT: ret i32 [[DIV]]
56 ; CHECK-NEXT: [[DIV:%.*]] = sdiv i32 [[CONV]], 255
57 ; CHECK-NEXT: ret i32 [[DIV]]
77 ; CHECK-NEXT: ret i32 [[DIV]]
97 ; CHECK-NEXT: ret i32 [[DIV]]
117 ; CHECK-NEXT: ret i32 [[DIV]]
137 ; CHECK-NEXT: ret i32 [[DIV]]
[all …]
H A Dicmp.ll62 ; CHECK-NEXT: [[DIV:%.*]] = udiv i8 [[MUL]], 2
63 ; CHECK-NEXT: [[CMP:%.*]] = icmp ule i8 [[DIV]], [[X]]
85 ; CHECK-NEXT: [[DIV:%.*]] = udiv i8 [[MUL]], 4
86 ; CHECK-NEXT: [[CMP:%.*]] = icmp uge i8 [[DIV]], [[X]]
99 ; CHECK-NEXT: [[DIV:%.*]] = udiv i8 [[MUL]], 4
100 ; CHECK-NEXT: [[CMP:%.*]] = icmp ult i8 [[DIV]], [[X]]
113 ; CHECK-NEXT: [[DIV:%.*]] = udiv i8 [[MUL]], 4
146 ; CHECK-NEXT: [[DIV:%.*]] = lshr i8 [[MUL]], 2
147 ; CHECK-NEXT: [[CMP:%.*]] = icmp ule i8 [[DIV]], [[X]]
179 ; CHECK-NEXT: [[DIV:%.*]] = udiv i8 [[MUL]], 3
[all …]
/llvm-project-15.0.7/llvm/test/Transforms/DivRemPairs/Mips/
H A Ddiv-expanded-rem-pair.ll8 ; CHECK-NEXT: [[DIV:%.*]] = sdiv i32 [[A:%.*]], [[B:%.*]]
9 ; CHECK-NEXT: [[T0:%.*]] = mul i32 [[DIV]], [[B]]
23 ; CHECK-NEXT: [[DIV:%.*]] = udiv i32 [[A:%.*]], [[B:%.*]]
24 ; CHECK-NEXT: [[T0:%.*]] = mul i32 [[DIV]], [[B]]
41 ; CHECK-NEXT: [[DIV:%.*]] = sdiv i16 [[A:%.*]], [[B:%.*]]
42 ; CHECK-NEXT: [[CMP:%.*]] = icmp eq i16 [[DIV]], 42
45 ; CHECK-NEXT: [[T0:%.*]] = mul i16 [[DIV]], [[B]]
73 ; CHECK-NEXT: [[CMP:%.*]] = icmp eq i8 [[DIV]], 42
76 ; CHECK-NEXT: [[T0:%.*]] = mul i8 [[DIV]], [[B]]
147 ; CHECK-NEXT: [[CMP:%.*]] = icmp eq i128 [[DIV]], 42
[all …]
H A Ddiv-rem-pairs.ll9 ; CHECK-NEXT: [[DIV:%.*]] = sdiv i32 [[A]], [[B]]
10 ; CHECK-NEXT: call void @foo(i32 [[REM]], i32 [[DIV]])
21 ; CHECK-NEXT: [[DIV:%.*]] = udiv i32 [[A:%.*]], [[B:%.*]]
23 ; CHECK-NEXT: call void @foo(i32 [[REM]], i32 [[DIV]])
39 ; CHECK-NEXT: [[DIV:%.*]] = sdiv i32 [[A]], [[B]]
70 ; CHECK-NEXT: [[TMP0:%.*]] = mul i64 [[DIV]], [[B_FROZEN]]
102 ; CHECK-NEXT: [[CMP:%.*]] = icmp eq i16 [[DIV]], 42
134 ; CHECK-NEXT: [[CMP:%.*]] = icmp eq i8 [[DIV]], 42
210 ; CHECK-NEXT: [[DIV:%.*]] = udiv i32 [[A]], [[B]]
268 ; CHECK-NEXT: [[DIV:%.*]] = sdiv i32 [[A]], [[C:%.*]]
[all …]
/llvm-project-15.0.7/llvm/test/Transforms/DivRemPairs/PowerPC/
H A Ddiv-rem-pairs.ll10 ; CHECK-NEXT: [[DIV:%.*]] = sdiv i32 [[A_FROZEN]], [[B_FROZEN]]
11 ; CHECK-NEXT: [[TMP1:%.*]] = mul i32 [[DIV]], [[B_FROZEN]]
27 ; CHECK-NEXT: [[TMP1:%.*]] = mul i32 [[DIV]], [[B_FROZEN]]
47 ; CHECK-NEXT: [[TMP0:%.*]] = mul i32 [[DIV]], [[B_FROZEN]]
79 ; CHECK-NEXT: [[TMP0:%.*]] = mul i64 [[DIV]], [[B_FROZEN]]
111 ; CHECK-NEXT: [[CMP:%.*]] = icmp eq i16 [[DIV]], 42
143 ; CHECK-NEXT: [[CMP:%.*]] = icmp eq i8 [[DIV]], 42
146 ; CHECK-NEXT: [[TMP0:%.*]] = mul i8 [[DIV]], [[B_FROZEN]]
224 ; CHECK-NEXT: [[DIV:%.*]] = udiv i32 [[A]], [[B]]
282 ; CHECK-NEXT: [[DIV:%.*]] = sdiv i32 [[A]], [[C:%.*]]
[all …]
H A Ddiv-expanded-rem-pair.ll8 ; CHECK-NEXT: [[DIV:%.*]] = sdiv i32 [[A:%.*]], [[B:%.*]]
9 ; CHECK-NEXT: [[T0:%.*]] = mul i32 [[DIV]], [[B]]
11 ; CHECK-NEXT: call void @foo(i32 [[REM]], i32 [[DIV]])
24 ; CHECK-NEXT: [[T0:%.*]] = mul i32 [[DIV]], [[B]]
26 ; CHECK-NEXT: call void @foo(i32 [[REM]], i32 [[DIV]])
42 ; CHECK-NEXT: [[CMP:%.*]] = icmp eq i16 [[DIV]], 42
45 ; CHECK-NEXT: [[T0:%.*]] = mul i16 [[DIV]], [[B]]
73 ; CHECK-NEXT: [[CMP:%.*]] = icmp eq i8 [[DIV]], 42
76 ; CHECK-NEXT: [[T0:%.*]] = mul i8 [[DIV]], [[B]]
152 ; CHECK-NEXT: [[CMP:%.*]] = icmp eq i128 [[DIV]], 42
[all …]
/llvm-project-15.0.7/llvm/test/Transforms/DivRemPairs/X86/
H A Ddiv-expanded-rem-pair.ll9 ; CHECK-NEXT: [[T0:%.*]] = mul i32 [[DIV]], [[B]]
24 ; CHECK-NEXT: [[T0:%.*]] = mul i32 [[DIV]], [[B]]
220 ; CHECK-NEXT: ret i64 [[DIV]]
252 ; CHECK-NEXT: ret i128 [[DIV]]
281 ; CHECK-NEXT: ret i64 [[DIV]]
312 ; CHECK-NEXT: ret i64 [[DIV]]
346 ; CHECK-NEXT: ret i64 [[DIV]]
377 ; CHECK-NEXT: ret i64 [[DIV]]
408 ; CHECK-NEXT: ret i128 [[DIV]]
439 ; CHECK-NEXT: ret i128 [[DIV]]
[all …]
H A Ddiv-rem-pairs.ll9 ; CHECK-NEXT: [[DIV:%.*]] = sdiv i32 [[A]], [[B]]
10 ; CHECK-NEXT: call void @foo(i32 [[REM]], i32 [[DIV]])
21 ; CHECK-NEXT: [[DIV:%.*]] = udiv i32 [[A:%.*]], [[B:%.*]]
23 ; CHECK-NEXT: call void @foo(i32 [[REM]], i32 [[DIV]])
39 ; CHECK-NEXT: [[DIV:%.*]] = sdiv i32 [[A]], [[B]]
68 ; CHECK-NEXT: [[DIV:%.*]] = udiv i64 [[A]], [[B]]
98 ; CHECK-NEXT: [[CMP:%.*]] = icmp eq i16 [[DIV]], 42
127 ; CHECK-NEXT: [[CMP:%.*]] = icmp eq i8 [[DIV]], 42
201 ; CHECK-NEXT: [[DIV:%.*]] = udiv i32 [[A]], [[B]]
259 ; CHECK-NEXT: [[DIV:%.*]] = sdiv i32 [[A]], [[C:%.*]]
[all …]
/llvm-project-15.0.7/llvm/test/Transforms/SimplifyCFG/
H A Ddiv-rem-pairs.ll15 ; CHECK-NEXT: [[DIV:%.*]] = sdiv i32 [[A]], [[B]]
18 ; CHECK-NEXT: [[RET:%.*]] = phi i32 [ [[DIV]], [[IF]] ], [ 3, [[ENTRY:%.*]] ]
42 ; CHECK-NEXT: [[DIV:%.*]] = udiv i64 [[A]], [[B]]
45 ; CHECK-NEXT: [[RET:%.*]] = phi i64 [ [[DIV]], [[IF]] ], [ 3, [[ENTRY:%.*]] ]
65 ; CHECK-NEXT: [[DIV:%.*]] = sdiv i16 [[A:%.*]], [[B:%.*]]
66 ; CHECK-NEXT: [[CMP:%.*]] = icmp eq i16 [[DIV]], 42
92 ; CHECK-NEXT: [[DIV:%.*]] = udiv i8 [[A:%.*]], [[B:%.*]]
93 ; CHECK-NEXT: [[CMP:%.*]] = icmp eq i8 [[DIV]], 42
/llvm-project-15.0.7/llvm/test/Transforms/CodeGenPrepare/X86/
H A Dselect.ll34 ; CHECK-NEXT: [[DIV:%.*]] = fdiv float [[A]], [[B:%.*]]
37 ; CHECK-NEXT: [[SEL:%.*]] = phi float [ [[DIV]], [[SELECT_TRUE_SINK]] ], [ 2.000000e+00, [[ENTRY…
47 ; DEBUG-NEXT: [[DIV:%.*]] = fdiv float [[A]], [[B:%.*]]
48 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata float [[DIV]]
69 ; CHECK-NEXT: [[DIV:%.*]] = fdiv float [[A]], [[B:%.*]]
82 ; DEBUG-NEXT: [[DIV:%.*]] = fdiv float [[A]], [[B:%.*]]
83 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata float [[DIV]]
126 ; CHECK-NEXT: [[DIV:%.*]] = fdiv float [[A:%.*]], [[B:%.*]]
128 ; CHECK-NEXT: [[SEL:%.*]] = select i1 [[CMP]], float [[DIV]], float 2.000000e+00, !unpredictable…
162 ; CHECK-NEXT: [[DIV:%.*]] = fdiv float [[A:%.*]], [[B:%.*]]
[all …]
/llvm-project-15.0.7/llvm/test/Transforms/Util/PredicateInfo/
H A Dedge.ll84 ; CHECK-NEXT: [[DIV:%.*]] = fdiv double [[X:%.*]], [[Y_0]]
87 ; CHECK-NEXT: [[RETVAL:%.*]] = phi double [ [[DIV]], [[IF]] ], [ [[X]], [[ENTRY:%.*]] ]
111 ; CHECK-NEXT: [[DIV:%.*]] = fdiv double [[X:%.*]], [[Y_0]]
114 ; CHECK-NEXT: [[RETVAL:%.*]] = phi double [ [[DIV]], [[ELSE]] ], [ [[X]], [[ENTRY:%.*]] ]
138 ; CHECK-NEXT: [[DIV:%.*]] = fdiv double [[X:%.*]], [[Y_0]]
141 ; CHECK-NEXT: [[RETVAL:%.*]] = phi double [ [[DIV]], [[IF]] ], [ [[X]], [[ENTRY:%.*]] ]
165 ; CHECK-NEXT: [[DIV:%.*]] = fdiv double [[X:%.*]], [[Y_0]]
168 ; CHECK-NEXT: [[RETVAL:%.*]] = phi double [ [[DIV]], [[ELSE]] ], [ [[X]], [[ENTRY:%.*]] ]
194 ; CHECK-NEXT: [[DIV:%.*]] = fdiv double [[X:%.*]], [[Z_0]]
197 ; CHECK-NEXT: [[RETVAL:%.*]] = phi double [ [[DIV]], [[IF]] ], [ [[X]], [[ENTRY:%.*]] ]
[all …]
/llvm-project-15.0.7/llvm/test/CodeGen/RISCV/
H A Dzmmul.ll2 ; RUN: | not FileCheck -check-prefix=CHECK-DIV %s
4 ; RUN: | not FileCheck -check-prefix=CHECK-DIV %s
25 ; RUN: | FileCheck -check-prefixes=CHECK-MUL,CHECK-UDIV,CHECK-DIV,CHECK-UREM,CHECK-REM %s
27 ; RUN: | FileCheck -check-prefixes=CHECK-MUL,CHECK-UDIV,CHECK-DIV,CHECK-UREM,CHECK-REM %s
32 ; CHECK-DIV: div{{w?}} {{[as]}}{{[0-9]}}, {{[as]}}{{[0-9]}}, {{[as]}}{{[0-9]}}

123456