chat.cpp

URL: https://mirkwood.cs.edinboro.edu/~bennett/class/cmsc3100/spring2026/notes/swar/code/chat.cpp
 
// Thank you ChatGPT:
//
// GNU C++ SIMD Within A Register (SWAR) example for x86
// Uses GCC vector extensions (works with g++)
//
// Compile with:
// g++ -O2 -msse2 simd_gnu.cpp -o simd_gnu

#include <iostream>

// Define a 128-bit vector containing four 32-bit integers
typedef int v4si __attribute__((vector_size(16)));

int main() {
    v4si a = {1, 2, 3, 4};
    v4si b = {10, 20, 30, 40};

    // SIMD addition happens in one instruction
    v4si c = a + b;

    std::cout << "Results:\n";
    for (int i = 0; i < 4; i++) {
        std::cout << a[i] << " + " << b[i]
                  << " = " << c[i] << "\n";
    }

    return 0;
}