Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / CodeGen / RISCV / rvv / fixed-vector-i8-index-cornercase.ll
blob6b8d778bc3242f2545244408c4324f11d7ed8c6d
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 2
2 ; RUN: llc -mtriple=riscv64 -mattr=+v,+zvl512b < %s | FileCheck %s
4 ; A single source shuffle with an offset not representable in an i8
5 ; vector, and a type which can't be promoted to i16 element type while
6 ; remaining a valid type.  Note that splitting the vector is legal here
7 define <512 x i8> @single_source(<512 x i8> %a) {
8 ; CHECK-LABEL: single_source:
9 ; CHECK:       # %bb.0:
10 ; CHECK-NEXT:    addi sp, sp, -1536
11 ; CHECK-NEXT:    .cfi_def_cfa_offset 1536
12 ; CHECK-NEXT:    sd ra, 1528(sp) # 8-byte Folded Spill
13 ; CHECK-NEXT:    sd s0, 1520(sp) # 8-byte Folded Spill
14 ; CHECK-NEXT:    .cfi_offset ra, -8
15 ; CHECK-NEXT:    .cfi_offset s0, -16
16 ; CHECK-NEXT:    addi s0, sp, 1536
17 ; CHECK-NEXT:    .cfi_def_cfa s0, 0
18 ; CHECK-NEXT:    andi sp, sp, -512
19 ; CHECK-NEXT:    vmv8r.v v16, v8
20 ; CHECK-NEXT:    li a0, 512
21 ; CHECK-NEXT:    addi a1, sp, 512
22 ; CHECK-NEXT:    vsetvli zero, a0, e8, m8, ta, ma
23 ; CHECK-NEXT:    vse8.v v8, (a1)
24 ; CHECK-NEXT:    lbu a0, 770(sp)
25 ; CHECK-NEXT:    vmv.x.s a1, v16
26 ; CHECK-NEXT:    vmv.v.x v8, a1
27 ; CHECK-NEXT:    vslide1down.vx v8, v8, a0
28 ; CHECK-NEXT:    vsetivli zero, 1, e8, m1, ta, ma
29 ; CHECK-NEXT:    vslidedown.vi v24, v16, 5
30 ; CHECK-NEXT:    li a0, 432
31 ; CHECK-NEXT:    li a1, 431
32 ; CHECK-NEXT:    vsetvli zero, a0, e8, m8, tu, ma
33 ; CHECK-NEXT:    vslideup.vx v8, v24, a1
34 ; CHECK-NEXT:    vsetivli zero, 1, e8, m1, ta, ma
35 ; CHECK-NEXT:    vslidedown.vi v16, v16, 4
36 ; CHECK-NEXT:    li a0, 466
37 ; CHECK-NEXT:    li a1, 465
38 ; CHECK-NEXT:    lbu a2, 1012(sp)
39 ; CHECK-NEXT:    vsetvli zero, a0, e8, m8, tu, ma
40 ; CHECK-NEXT:    vslideup.vx v8, v16, a1
41 ; CHECK-NEXT:    vmv.s.x v16, a2
42 ; CHECK-NEXT:    li a0, 501
43 ; CHECK-NEXT:    li a1, 500
44 ; CHECK-NEXT:    vsetvli zero, a0, e8, m8, tu, ma
45 ; CHECK-NEXT:    vslideup.vx v8, v16, a1
46 ; CHECK-NEXT:    addi sp, s0, -1536
47 ; CHECK-NEXT:    ld ra, 1528(sp) # 8-byte Folded Reload
48 ; CHECK-NEXT:    ld s0, 1520(sp) # 8-byte Folded Reload
49 ; CHECK-NEXT:    addi sp, sp, 1536
50 ; CHECK-NEXT:    ret
51   %res = shufflevector <512 x i8> %a, <512 x i8> poison, <512 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 5, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 4, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 500, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 258>
52   ret <512 x i8> %res
55 ; Like the above, but the actual values of the index are all representable
56 define <512 x i8> @range_restriction(<512 x i8> %a) {
57 ; CHECK-LABEL: range_restriction:
58 ; CHECK:       # %bb.0:
59 ; CHECK-NEXT:    li a0, 512
60 ; CHECK-NEXT:    vsetvli zero, a0, e8, m8, ta, ma
61 ; CHECK-NEXT:    vmv.v.i v16, 0
62 ; CHECK-NEXT:    li a1, 254
63 ; CHECK-NEXT:    vslide1down.vx v24, v16, a1
64 ; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
65 ; CHECK-NEXT:    vmv.v.i v16, 5
66 ; CHECK-NEXT:    li a1, 432
67 ; CHECK-NEXT:    li a2, 431
68 ; CHECK-NEXT:    vsetvli zero, a1, e8, m8, tu, ma
69 ; CHECK-NEXT:    vslideup.vx v24, v16, a2
70 ; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
71 ; CHECK-NEXT:    vmv.v.i v16, 4
72 ; CHECK-NEXT:    li a1, 466
73 ; CHECK-NEXT:    li a2, 465
74 ; CHECK-NEXT:    vsetvli zero, a1, e8, m8, tu, ma
75 ; CHECK-NEXT:    vslideup.vx v24, v16, a2
76 ; CHECK-NEXT:    li a1, 44
77 ; CHECK-NEXT:    vmv.s.x v16, a1
78 ; CHECK-NEXT:    li a1, 501
79 ; CHECK-NEXT:    li a2, 500
80 ; CHECK-NEXT:    vsetvli zero, a1, e8, m8, tu, ma
81 ; CHECK-NEXT:    vslideup.vx v24, v16, a2
82 ; CHECK-NEXT:    vsetvli zero, a0, e8, m8, ta, ma
83 ; CHECK-NEXT:    vrgather.vv v16, v8, v24
84 ; CHECK-NEXT:    vmv.v.v v8, v16
85 ; CHECK-NEXT:    ret
86   %res = shufflevector <512 x i8> %a, <512 x i8> poison, <512 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 5, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 4, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 44, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 254>
87   ret <512 x i8> %res
91 define <512 x i8> @two_source(<512 x i8> %a, <512 x i8> %b) {
92 ; CHECK-LABEL: two_source:
93 ; CHECK:       # %bb.0:
94 ; CHECK-NEXT:    addi sp, sp, -1536
95 ; CHECK-NEXT:    .cfi_def_cfa_offset 1536
96 ; CHECK-NEXT:    sd ra, 1528(sp) # 8-byte Folded Spill
97 ; CHECK-NEXT:    sd s0, 1520(sp) # 8-byte Folded Spill
98 ; CHECK-NEXT:    .cfi_offset ra, -8
99 ; CHECK-NEXT:    .cfi_offset s0, -16
100 ; CHECK-NEXT:    addi s0, sp, 1536
101 ; CHECK-NEXT:    .cfi_def_cfa s0, 0
102 ; CHECK-NEXT:    andi sp, sp, -512
103 ; CHECK-NEXT:    vmv8r.v v24, v8
104 ; CHECK-NEXT:    li a0, 512
105 ; CHECK-NEXT:    addi a1, sp, 512
106 ; CHECK-NEXT:    vsetvli zero, a0, e8, m8, ta, ma
107 ; CHECK-NEXT:    vse8.v v8, (a1)
108 ; CHECK-NEXT:    vsetivli zero, 1, e8, m1, ta, ma
109 ; CHECK-NEXT:    vslidedown.vi v0, v24, 5
110 ; CHECK-NEXT:    vmv.x.s a1, v24
111 ; CHECK-NEXT:    vsetvli zero, a0, e8, m8, ta, ma
112 ; CHECK-NEXT:    vmv.v.x v8, a1
113 ; CHECK-NEXT:    li a1, 432
114 ; CHECK-NEXT:    li a2, 431
115 ; CHECK-NEXT:    vsetvli zero, a1, e8, m8, tu, ma
116 ; CHECK-NEXT:    vslideup.vx v8, v0, a2
117 ; CHECK-NEXT:    vsetivli zero, 1, e8, m1, ta, ma
118 ; CHECK-NEXT:    vslidedown.vi v24, v24, 4
119 ; CHECK-NEXT:    li a1, 466
120 ; CHECK-NEXT:    li a2, 465
121 ; CHECK-NEXT:    lbu a3, 985(sp)
122 ; CHECK-NEXT:    vsetvli zero, a1, e8, m8, tu, ma
123 ; CHECK-NEXT:    vslideup.vx v8, v24, a2
124 ; CHECK-NEXT:    vmv.s.x v24, a3
125 ; CHECK-NEXT:    li a1, 478
126 ; CHECK-NEXT:    li a2, 477
127 ; CHECK-NEXT:    lbu a3, 1012(sp)
128 ; CHECK-NEXT:    vsetvli zero, a1, e8, m8, tu, ma
129 ; CHECK-NEXT:    vslideup.vx v8, v24, a2
130 ; CHECK-NEXT:    vmv.s.x v24, a3
131 ; CHECK-NEXT:    li a1, 501
132 ; CHECK-NEXT:    li a2, 500
133 ; CHECK-NEXT:    vsetvli zero, a1, e8, m8, tu, ma
134 ; CHECK-NEXT:    vslideup.vx v8, v24, a2
135 ; CHECK-NEXT:    lui a1, 2761
136 ; CHECK-NEXT:    slli a1, a1, 25
137 ; CHECK-NEXT:    addi a1, a1, 501
138 ; CHECK-NEXT:    slli a1, a1, 13
139 ; CHECK-NEXT:    addi a1, a1, 512
140 ; CHECK-NEXT:    vsetivli zero, 8, e64, m1, ta, ma
141 ; CHECK-NEXT:    vmv.v.i v24, 0
142 ; CHECK-NEXT:    lui a2, 1047552
143 ; CHECK-NEXT:    addiw a2, a2, 1
144 ; CHECK-NEXT:    slli a2, a2, 23
145 ; CHECK-NEXT:    addi a2, a2, 1
146 ; CHECK-NEXT:    slli a2, a2, 18
147 ; CHECK-NEXT:    vslide1down.vx v0, v24, a2
148 ; CHECK-NEXT:    lui a2, 4
149 ; CHECK-NEXT:    vmv.s.x v24, a2
150 ; CHECK-NEXT:    li a2, 64
151 ; CHECK-NEXT:    vsetivli zero, 7, e64, m1, tu, ma
152 ; CHECK-NEXT:    vslideup.vi v0, v24, 6
153 ; CHECK-NEXT:    vsetvli zero, a2, e64, m8, ta, ma
154 ; CHECK-NEXT:    vmv.v.x v24, a1
155 ; CHECK-NEXT:    vsetvli zero, a0, e8, m8, ta, mu
156 ; CHECK-NEXT:    vrgather.vv v8, v16, v24, v0.t
157 ; CHECK-NEXT:    addi sp, s0, -1536
158 ; CHECK-NEXT:    ld ra, 1528(sp) # 8-byte Folded Reload
159 ; CHECK-NEXT:    ld s0, 1520(sp) # 8-byte Folded Reload
160 ; CHECK-NEXT:    addi sp, sp, 1536
161 ; CHECK-NEXT:    ret
162   %res = shufflevector <512 x i8> %a, <512 x i8> %b, <512 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 548, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 5, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 4, i32 574, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 473, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 674, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 500, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 555>
163   ret <512 x i8> %res