Skip to content

LLVM Intrinsics handling #424

@ireneGP

Description

@ireneGP

Hello,

I am writing to model check some LLVM IR code generated from a reverse engineering tool, and in my code some Intrinsics are used everywhere, such as llvm.bswap.i256 and llvm.ctlz.i256. And they are "declared" in my IR program:

; Function Attrs: nounwind readnone
declare i160 @llvm.bswap.i160(i160) #1

After some debugging, I figured that when Smack goes through the usage of such intrinsics, the behavior becomes quite wired (e.g., generating a false positive or so).

So my question is, in my case (since I didn't compile certain C code into LLVM IR), am I expected to implement such Intrinsics by myself? At this moment it seems problematic to just leave the declaration there.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions