Побитовая передача из 8 байтов

Я ищу эффективный алгоритм в C для побитового транспонирования 8 байтов данных. Я имею в виду, что если у меня есть 8 байтов:

00011100
00111000
00000001
00000000
11000000
00000000
11111111
01010101

Я хочу получить следующие 8 байтов:

00001010
00001011
01000010
11000011
11000010
10000011
00000010
00100011

И так как я хочу использовать это на встроенной платформе, он должен быть как можно быстрее: -)

Все идеи очень ценятся!