Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SYCL-MLIR breaks on some sycl::vec<bool, size> constructs #12296

Open
victor-eds opened this issue Jan 4, 2024 · 0 comments
Open

SYCL-MLIR breaks on some sycl::vec<bool, size> constructs #12296

victor-eds opened this issue Jan 4, 2024 · 0 comments
Labels
bug Something isn't working sycl-mlir Pull requests or issues for sycl-mlir branch

Comments

@victor-eds
Copy link
Contributor

Describe the bug

SYCL-MLIR does not fully support sycl::vec<bool, size> interface, leading to crashes. This might be related to SYCL-MLIR not being consistent when representing bool as i8 instead of i1 in memory.

To Reproduce

Compiling E2E tests using sycl::vec<bool, size> will lead to a crash:

clang++  -fsycl -fsycl-targets=spir64-unknown-unknown-syclmlir -w sycl/test-e2e/Basic/vector/bool.cpp -o - -S -emit-llvm -fsycl-device-only
cgeist: polygeist/tools/cgeist/Lib/CGCall.cc:145: void castCallerArgs(mlir::func::FuncOp, llvm::SmallVectorImpl<mlir::Value>&, mlir::OpBuilder&): Assertion `CalleeArgType == Args[I].getType() && "Callsite argument mismatch"' failed.

Note this is also true when passing -fpreview-breaking-changes:

Environment (please complete the following information):

  • OS: Linux
  • Target device and vendor: Intel GPU
  • DPC++ version: a098575c346a
@victor-eds victor-eds added bug Something isn't working sycl-mlir Pull requests or issues for sycl-mlir branch labels Jan 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working sycl-mlir Pull requests or issues for sycl-mlir branch
Projects
None yet
Development

No branches or pull requests

1 participant