Execution times and comparison for G4, G4e and G5. These are on a 10 million times scale again. The pointer passed to each function has an alignment of XXXX XXX4 (loops 12 times before going to vectorized loop) and the buffer length is 5595 bytes. 'offset' stands for the offset to the first element that corresponds the search. ===================================== HASCHR ===================================== offset | 24 | 1000 | 5900 haschr, current C version 1.5ghz 0.495s | 4.223s | 22.652s 7455 2ghz 970MP 0.762s | 2.573s | 10.337s highest mode 466mhz 1.483s |10.777s | 56.904s 7400 --------- haschr, Assembly 1.5ghz 0.417s | 1.395s | 6.172s 7455 2ghz 970MP 0.431s | 1.487s | 6.378s highest mode 466mhz 1.311s | 4.638s | 21.102s 7400 ===================================== MEMCHR ===================================== offset | 24 | 1000 | 5900 memchr, current C version 1.5ghz 0.768s | 2.049s | 7.999s 7455 2ghz 970MP 0.691s | 1.888s | 7.253s highest mode 466mhz 2.234s | 6.226s | 25.481s 7400 --------- memchr, Assembly 1.5ghz 0.481s | 1.469s | 6.225s 7455 2ghz 970MP 0.481s | 1.545s | 6.432s highest mode 466mhz 1.633s | 4.960s | 21.252s 7400 ===================================== MEMCHR ===================================== offset | 24 | 1000 | 5900 strchr, current C version 1.5ghz 1.088s | 2.963s | 11.889s 7455 2ghz 970MP 1.043s | 2.482s | 7.825s highest mode 466mhz 3.307s |11.249s | 49.865s 7400 --------- strchr, Assembly 1.5ghz 0.581s | 1.849s | 7.952s 7455 2ghz 970MP 0.614s | 1.622s | 6.337s highest mode 466mhz 1.848s | 8.222s | 39.755s 7400