Skip to content

Commit 277bd76

Browse files
committed
Revert "Put monkys together"
This reverts commit 7e66c68.
1 parent 7e66c68 commit 277bd76

File tree

1 file changed

+20
-18
lines changed

1 file changed

+20
-18
lines changed

src/day22.rs

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ unsafe fn vmod104976(a: __m256i) -> __m256i {
8282
_mm256_sub_epi32(a, c)
8383
}
8484

85-
static mut DONE: [[u16; 8]; 104976] = [[0u16; 8]; SEQUENCES];
85+
static mut DONE: [[u16; 104976]; 8] = [[0u16; SEQUENCES]; 8];
8686

8787
#[aoc(day22, part2)]
8888
pub fn part2(s: &str) -> i32 {
@@ -91,7 +91,9 @@ pub fn part2(s: &str) -> i32 {
9191
let mut sequences = [0; SEQUENCES];
9292
let done = unsafe { &mut DONE };
9393

94-
done.fill([0; 8]);
94+
for j in 0..8 {
95+
done[j].fill(0);
96+
}
9597

9698
let mut i = 0;
9799
let mut monky = 1;
@@ -164,67 +166,67 @@ pub fn part2(s: &str) -> i32 {
164166

165167
let diff_i = _mm256_extract_epi32::<0>(diffs) as usize;
166168
std::hint::assert_unchecked(diff_i < SEQUENCES);
167-
if done[diff_i][0] != monky + 0 {
169+
if done[0][diff_i] != monky + 0 {
168170
let price = _mm256_extract_epi32::<0>(price);
169171
sequences[diff_i] += price;
170172

171-
done[diff_i][0] = monky + 0;
173+
done[0][diff_i] = monky + 0;
172174
}
173175
let diff_i = _mm256_extract_epi32::<1>(diffs) as usize;
174176
std::hint::assert_unchecked(diff_i < SEQUENCES);
175-
if done[diff_i][1] != monky + 1 {
177+
if done[1][diff_i] != monky + 1 {
176178
let price = _mm256_extract_epi32::<1>(price);
177179
sequences[diff_i] += price;
178180

179-
done[diff_i][1] = monky + 1;
181+
done[1][diff_i] = monky + 1;
180182
}
181183
let diff_i = _mm256_extract_epi32::<2>(diffs) as usize;
182184
std::hint::assert_unchecked(diff_i < SEQUENCES);
183-
if done[diff_i][2] != monky + 2 {
185+
if done[2][diff_i] != monky + 2 {
184186
let price = _mm256_extract_epi32::<2>(price);
185187
sequences[diff_i] += price;
186188

187-
done[diff_i][2] = monky + 2;
189+
done[2][diff_i] = monky + 2;
188190
}
189191
let diff_i = _mm256_extract_epi32::<3>(diffs) as usize;
190192
std::hint::assert_unchecked(diff_i < SEQUENCES);
191-
if done[diff_i][3] != monky + 3 {
193+
if done[3][diff_i] != monky + 3 {
192194
let price = _mm256_extract_epi32::<3>(price);
193195
sequences[diff_i] += price;
194196

195-
done[diff_i][3] = monky + 3;
197+
done[3][diff_i] = monky + 3;
196198
}
197199
let diff_i = _mm256_extract_epi32::<4>(diffs) as usize;
198200
std::hint::assert_unchecked(diff_i < SEQUENCES);
199-
if done[diff_i][4] != monky + 4 {
201+
if done[4][diff_i] != monky + 4 {
200202
let price = _mm256_extract_epi32::<4>(price);
201203
sequences[diff_i] += price;
202204

203-
done[diff_i][4] = monky + 4;
205+
done[4][diff_i] = monky + 4;
204206
}
205207
let diff_i = _mm256_extract_epi32::<5>(diffs) as usize;
206208
std::hint::assert_unchecked(diff_i < SEQUENCES);
207-
if done[diff_i][5] != monky + 5 {
209+
if done[5][diff_i] != monky + 5 {
208210
let price = _mm256_extract_epi32::<5>(price);
209211
sequences[diff_i] += price;
210212

211-
done[diff_i][5] = monky + 5;
213+
done[5][diff_i] = monky + 5;
212214
}
213215
let diff_i = _mm256_extract_epi32::<6>(diffs) as usize;
214216
std::hint::assert_unchecked(diff_i < SEQUENCES);
215-
if done[diff_i][6] != monky + 6 {
217+
if done[6][diff_i] != monky + 6 {
216218
let price = _mm256_extract_epi32::<6>(price);
217219
sequences[diff_i] += price;
218220

219-
done[diff_i][6] = monky + 6;
221+
done[6][diff_i] = monky + 6;
220222
}
221223
let diff_i = _mm256_extract_epi32::<7>(diffs) as usize;
222224
std::hint::assert_unchecked(diff_i < SEQUENCES);
223-
if done[diff_i][7] != monky + 7 {
225+
if done[7][diff_i] != monky + 7 {
224226
let price = _mm256_extract_epi32::<7>(price);
225227
sequences[diff_i] += price;
226228

227-
done[diff_i][7] = monky + 7;
229+
done[7][diff_i] = monky + 7;
228230
}
229231

230232
prev = price;

0 commit comments

Comments
 (0)