Skip to content

Conversation

@robertoraggi
Copy link
Owner

@robertoraggi robertoraggi commented Dec 10, 2025

should be enough to fix IR codegen on macOS when stdlib.h is included

echo '#include <stdlib.h>' | cxx -xc -toolchain macos -U__llvm__ -S -o - -emit-ir -
...
  llvm.func @_OSSwapInt16(%arg0: i16) -> i16 {
    %0 = llvm.mlir.constant(8 : i32) : i32
    %1 = llvm.mlir.constant(1 : index) : i64
    %2 = llvm.alloca %1 x i16 : (i64) -> !llvm.ptr
    %3 = llvm.alloca %1 x i16 : (i64) -> !llvm.ptr
    llvm.store %arg0, %3 : i16, !llvm.ptr
    %4 = llvm.load %3 : !llvm.ptr -> i16
    %5 = llvm.sext %4 : i16 to i32
    %6 = llvm.shl %5, %0 : i32
    %7 = llvm.ashr %5, %0 : i32
    %8 = llvm.or %6, %7 : i32
    %9 = llvm.trunc %8 : i32 to i16
    llvm.store %9, %2 : i16, !llvm.ptr
    llvm.br ^bb1
  ^bb1:  // pred: ^bb0
    %10 = llvm.load %2 : !llvm.ptr -> i16
    llvm.return %10 : i16
  }
}

Signed-off-by: Roberto Raggi <roberto.raggi@gmail.com>
@robertoraggi robertoraggi merged commit 06c6d10 into main Dec 11, 2025
8 checks passed
@robertoraggi robertoraggi deleted the royal-fowl branch December 11, 2025 22:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants