Skip to content

Commit

Permalink
Revert "Put monkys together"
Browse files Browse the repository at this point in the history
This reverts commit 7e66c68.
  • Loading branch information
EbbDrop committed Dec 23, 2024
1 parent 7e66c68 commit 277bd76
Showing 1 changed file with 20 additions and 18 deletions.
38 changes: 20 additions & 18 deletions src/day22.rs
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ unsafe fn vmod104976(a: __m256i) -> __m256i {
_mm256_sub_epi32(a, c)
}

static mut DONE: [[u16; 8]; 104976] = [[0u16; 8]; SEQUENCES];
static mut DONE: [[u16; 104976]; 8] = [[0u16; SEQUENCES]; 8];

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

done.fill([0; 8]);
for j in 0..8 {
done[j].fill(0);
}

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

let diff_i = _mm256_extract_epi32::<0>(diffs) as usize;
std::hint::assert_unchecked(diff_i < SEQUENCES);
if done[diff_i][0] != monky + 0 {
if done[0][diff_i] != monky + 0 {
let price = _mm256_extract_epi32::<0>(price);
sequences[diff_i] += price;

done[diff_i][0] = monky + 0;
done[0][diff_i] = monky + 0;
}
let diff_i = _mm256_extract_epi32::<1>(diffs) as usize;
std::hint::assert_unchecked(diff_i < SEQUENCES);
if done[diff_i][1] != monky + 1 {
if done[1][diff_i] != monky + 1 {
let price = _mm256_extract_epi32::<1>(price);
sequences[diff_i] += price;

done[diff_i][1] = monky + 1;
done[1][diff_i] = monky + 1;
}
let diff_i = _mm256_extract_epi32::<2>(diffs) as usize;
std::hint::assert_unchecked(diff_i < SEQUENCES);
if done[diff_i][2] != monky + 2 {
if done[2][diff_i] != monky + 2 {
let price = _mm256_extract_epi32::<2>(price);
sequences[diff_i] += price;

done[diff_i][2] = monky + 2;
done[2][diff_i] = monky + 2;
}
let diff_i = _mm256_extract_epi32::<3>(diffs) as usize;
std::hint::assert_unchecked(diff_i < SEQUENCES);
if done[diff_i][3] != monky + 3 {
if done[3][diff_i] != monky + 3 {
let price = _mm256_extract_epi32::<3>(price);
sequences[diff_i] += price;

done[diff_i][3] = monky + 3;
done[3][diff_i] = monky + 3;
}
let diff_i = _mm256_extract_epi32::<4>(diffs) as usize;
std::hint::assert_unchecked(diff_i < SEQUENCES);
if done[diff_i][4] != monky + 4 {
if done[4][diff_i] != monky + 4 {
let price = _mm256_extract_epi32::<4>(price);
sequences[diff_i] += price;

done[diff_i][4] = monky + 4;
done[4][diff_i] = monky + 4;
}
let diff_i = _mm256_extract_epi32::<5>(diffs) as usize;
std::hint::assert_unchecked(diff_i < SEQUENCES);
if done[diff_i][5] != monky + 5 {
if done[5][diff_i] != monky + 5 {
let price = _mm256_extract_epi32::<5>(price);
sequences[diff_i] += price;

done[diff_i][5] = monky + 5;
done[5][diff_i] = monky + 5;
}
let diff_i = _mm256_extract_epi32::<6>(diffs) as usize;
std::hint::assert_unchecked(diff_i < SEQUENCES);
if done[diff_i][6] != monky + 6 {
if done[6][diff_i] != monky + 6 {
let price = _mm256_extract_epi32::<6>(price);
sequences[diff_i] += price;

done[diff_i][6] = monky + 6;
done[6][diff_i] = monky + 6;
}
let diff_i = _mm256_extract_epi32::<7>(diffs) as usize;
std::hint::assert_unchecked(diff_i < SEQUENCES);
if done[diff_i][7] != monky + 7 {
if done[7][diff_i] != monky + 7 {
let price = _mm256_extract_epi32::<7>(price);
sequences[diff_i] += price;

done[diff_i][7] = monky + 7;
done[7][diff_i] = monky + 7;
}

prev = price;
Expand Down

0 comments on commit 277bd76

Please sign in to comment.