Thanks for using Compiler Explorer
Sponsors
Jakt
C++
Ada
Algol68
Analysis
Android Java
Android Kotlin
Assembly
C
C3
Carbon
C with Coccinelle
C++ with Coccinelle
C++ (Circle)
CIRCT
Clean
CMake
CMakeScript
COBOL
C++ for OpenCL
MLIR
Cppx
Cppx-Blue
Cppx-Gold
Cpp2-cppfront
Crystal
C#
CUDA C++
D
Dart
Elixir
Erlang
Fortran
F#
GLSL
Go
Haskell
HLSL
Hook
Hylo
IL
ispc
Java
Julia
Kotlin
LLVM IR
LLVM MIR
Modula-2
Mojo
Nim
Numba
Nix
Objective-C
Objective-C++
OCaml
Odin
OpenCL C
Pascal
Pony
PTX
Python
Racket
Raku
Ruby
Rust
Sail
Snowball
Scala
Slang
Solidity
Spice
SPIR-V
Swift
LLVM TableGen
Toit
Triton
TypeScript Native
V
Vala
Visual Basic
Vyper
WASM
Yul (Solidity IR)
Zig
Javascript
GIMPLE
Ygen
sway
llvm source #1
Output
Compile to binary object
Link to binary
Execute the code
Intel asm syntax
Demangle identifiers
Verbose demangling
Filters
Unused labels
Library functions
Directives
Comments
Horizontal whitespace
Debug intrinsics
Compiler
clang (assertions trunk)
clang (trunk)
clang 10.0.0
clang 10.0.1
clang 11.0.0
clang 11.0.1
clang 12.0.0
clang 12.0.1
clang 13.0.0
clang 14.0.0
clang 15.0.0
clang 16.0.0
clang 17.0.1
clang 18.1.0
clang 19.1.0
clang 20.1.0
clang 21.1.0
clang 4.0.1
clang 5.0.0
clang 6.0.0
clang 7.0.0
clang 8.0.0
clang 9.0.0
hexagon-clang 16.0.5
llc (assertions trunk)
llc (trunk)
llc 10.0.0
llc 10.0.1
llc 11.0.0
llc 11.0.1
llc 12.0.0
llc 12.0.1
llc 13.0.0
llc 14.0.0
llc 15.0.0
llc 16.0.0
llc 17.0.1
llc 18.1.0
llc 19.1.0
llc 20.1.0
llc 21.1.0
llc 3.2
llc 3.3
llc 3.9.1
llc 4.0.0
llc 4.0.1
llc 5.0.0
llc 6.0.0
llc 7.0.0
llc 8.0.0
llc 9.0.0
opt (assertions trunk)
opt (trunk)
opt 10.0.0
opt 10.0.1
opt 11.0.0
opt 11.0.1
opt 12.0.0
opt 12.0.1
opt 13.0.0
opt 14.0.0
opt 15.0.0
opt 16.0.0
opt 17.0.1
opt 18.1.0
opt 19.1.0
opt 20.1.0
opt 21.1.0
opt 3.2
opt 3.3
opt 3.9.1
opt 4.0.0
opt 4.0.1
opt 5.0.0
opt 6.0.0
opt 7.0.0
opt 8.0.0
opt 9.0.0
Options
Source code
; ModuleID = 'reduced.ll' source_filename = "reduced.ll" target datalayout = "e-m:o-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64" target triple = "thumbv6m-apple-unknown-macho" %0 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i16, i16, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i32, i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } %1 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %2, %2, %3, i32, i32, i32, %4, %6, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, %8, i8, i8, i8, i8, %10 } %2 = type { i32 } %3 = type { i32 } %4 = type { %5 } %5 = type { i16 } %6 = type { %7 } %7 = type { i16 } %8 = type { %9 } %9 = type { i8 } %10 = type { i32 } %11 = type { %12, %12, %12, %12, %12, %12, %12, %12, %12 } %12 = type { i64, i32 } %13 = type { %14, %14, %14, %14, %14, %14, %14, ptr, ptr, ptr, ptr, i8, i32, i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, [18 x i32], i32, i32 } %14 = type { i8, %15, i8, i8, i8, i8 } %15 = type { i8, [19 x i8], i8 } %16 = type { i8, i8, i8, i8, i8 } @global = external global %0 @global.1 = external global %1 @global.2 = external global i64 @global.3 = external global %11 @global.4 = external global %13 @0 = internal global i64 0 @global.6 = external global %16 @1 = internal global i8 0 declare arm_aapcscc i1 @zot(i64) declare arm_aapcscc i64 @foo() declare arm_aapcscc void @ham() declare arm_aapcscc i32 @quux(i32) declare arm_aapcscc void @foo.8(i32) declare arm_aapcscc void @ham.9(i1) declare arm_aapcscc void @foo.10() declare arm_aapcscc void @spam(i1) declare arm_aapcscc void @quux.11() declare arm_aapcscc void @baz() declare arm_aapcscc i1 @foo.12() ; Function Attrs: minsize nounwind define arm_aapcscc i32 @main(i32 %0, i32 %1, i32 %2, ptr %3, ptr %4, i32 %5, i32 %6, ptr %7, i32 %8, ptr %9, ptr %10, i32 %11, i1 %12, ptr %13, ptr %14, i1 %15, i1 %16, i1 %17, i64 %18, i1 %19) #0 { %21 = load volatile i32, ptr inttoptr (i32 -268432228 to ptr), align 4 store i32 1, ptr %3, align 4 store i32 1, ptr @global.1, align 4 %22 = load volatile i32, ptr %3, align 4 store i8 1, ptr %3, align 1 switch i32 %0, label %32 [ i32 16, label %23 i32 18, label %24 i32 128, label %25 i32 129, label %26 i32 147, label %27 i32 19, label %28 i32 0, label %31 i32 20, label %29 i32 1, label %30 ] 23: ; preds = %20 store i8 1, ptr %3, align 2 br label %33 24: ; preds = %20 store i8 0, ptr %3, align 2 br label %33 25: ; preds = %20 store i8 0, ptr %3, align 2 br label %33 26: ; preds = %20 store i8 0, ptr %3, align 2 br label %33 27: ; preds = %20 store i8 0, ptr %3, align 2 br label %33 28: ; preds = %20 store i8 0, ptr %3, align 2 br label %33 29: ; preds = %20 store i8 0, ptr %9, align 2 br label %33 30: ; preds = %20 store i8 0, ptr %4, align 2 br label %33 31: ; preds = %20 store i8 1, ptr %3, align 2 br label %33 32: ; preds = %20 store i8 0, ptr null, align 2 br label %33 33: ; preds = %32, %31, %30, %29, %28, %27, %26, %25, %24, %23 %34 = phi i32 [ 0, %32 ], [ 0, %31 ], [ 0, %30 ], [ 0, %29 ], [ 4, %28 ], [ 8, %27 ], [ 11, %26 ], [ 3, %25 ], [ 2, %24 ], [ 1, %23 ] %35 = call arm_aapcscc ptr @barney(i32 %34) br label %36 36: ; preds = %44, %33 %37 = phi i32 [ 0, %33 ], [ %1, %44 ] %38 = icmp slt i32 %37, 1 br i1 %38, label %44, label %39 39: ; preds = %36 call arm_aapcscc void @foo.13() call arm_aapcscc void @foo.13() store i32 0, ptr %9, align 4 store volatile i32 17958665, ptr null, align 4 store volatile i32 0, ptr null, align 4 store i32 0, ptr %3, align 4 call arm_aapcscc void @widget.23() call arm_aapcscc void @pluto() %40 = call arm_aapcscc ptr @wombat() %41 = call arm_aapcscc ptr @wombat() %42 = call arm_aapcscc ptr @wombat() call arm_aapcscc void @widget.24() call arm_aapcscc void @pluto.14() call arm_aapcscc void @baz.15() call arm_aapcscc void @hoge() call arm_aapcscc void @quux.11() call arm_aapcscc void @spam(i1 true) %43 = load volatile i32, ptr null, align 4 br i1 %12, label %46, label %48 44: ; preds = %36 %45 = load ptr, ptr %3, align 4 call arm_aapcscc void %45(ptr null) br label %36 46: ; preds = %39 %47 = load volatile i32, ptr %4, align 4 store volatile i32 0, ptr null, align 4 store i32 1, ptr %3, align 4 br label %48 48: ; preds = %46, %39 store volatile i32 1831, ptr null, align 4 br label %49 49: ; preds = %135, %48 call arm_aapcscc void @3() call arm_aapcscc void @barney.16() call arm_aapcscc void @ham() %50 = call arm_aapcscc i32 @blam(i32 0) %51 = call arm_aapcscc i32 @blam(i32 1) %52 = call arm_aapcscc i32 @blam(i32 1) %53 = call arm_aapcscc i32 @blam(i32 3) %54 = call arm_aapcscc i32 @spam.17(i32 3, ptr getelementptr inbounds nuw (i8, ptr @global.3, i32 16)) %55 = call arm_aapcscc i32 @spam.17(i32 1, ptr getelementptr inbounds nuw (i8, ptr @global.3, i32 80)) %56 = call arm_aapcscc i32 @spam.17(i32 6, ptr getelementptr inbounds nuw (i8, ptr @global.3, i32 48)) %57 = call arm_aapcscc i32 @spam.17(i32 11, ptr getelementptr inbounds nuw (i8, ptr @global.3, i32 96)) %58 = call arm_aapcscc i32 @spam.17(i32 0, ptr getelementptr inbounds nuw (i8, ptr @global.3, i32 112)) %59 = call arm_aapcscc i32 @spam.17(i32 25, ptr getelementptr inbounds nuw (i8, ptr @global.3, i32 128)) call arm_aapcscc void @widget() %60 = load i32, ptr @global.3, align 8 store i32 %60, ptr %10, align 4 store i32 %11, ptr %14, align 4 store i32 %6, ptr %4, align 4 store i32 %8, ptr %13, align 4 store i32 %5, ptr %7, align 4 br i1 %17, label %65, label %61 61: ; preds = %49 %62 = load i8, ptr getelementptr inbounds nuw (i8, ptr @global.1, i32 178), align 2 %63 = zext i8 %62 to i32 %64 = call arm_aapcscc i32 @quux.18(i32 %63) br label %65 65: ; preds = %61, %49 %66 = call arm_aapcscc i1 @foo.12() br i1 %15, label %67, label %78 67: ; preds = %65 %68 = call arm_aapcscc i1 @barney.19() %69 = load i8, ptr getelementptr inbounds nuw (i8, ptr @global.1, i32 194), align 2 %70 = trunc i8 %69 to i1 %71 = load i32, ptr getelementptr inbounds nuw (i8, ptr @global.1, i32 140), align 4 %72 = or i32 %71, 1 %73 = select i1 %70, i32 %72, i32 0 store i32 %73, ptr %4, align 4 %74 = load volatile i64, ptr null, align 8 %75 = load i32, ptr getelementptr inbounds nuw (i8, ptr @global, i32 352), align 4 %76 = or i32 %75, 1 %77 = zext i32 %76 to i64 store i64 %77, ptr @global.2, align 8 br label %78 78: ; preds = %67, %65 %79 = load i8, ptr getelementptr inbounds nuw (i8, ptr @global.1, i32 178), align 2 %80 = icmp eq i8 %79, 0 br i1 %80, label %81, label %101 81: ; preds = %78 %82 = load i8, ptr getelementptr inbounds nuw (i8, ptr @global.1, i32 193), align 1 %83 = trunc i8 %82 to i1 br i1 %83, label %89, label %84 84: ; preds = %81 %85 = load i32, ptr %7, align 4 %86 = icmp eq i32 %85, 0 br i1 %86, label %101, label %87 87: ; preds = %84 %88 = load i8, ptr %4, align 1 br label %94 89: ; preds = %81 %90 = load i32, ptr %4, align 4 %91 = icmp ne i32 %90, 0 %92 = select i1 %19, i1 %91, i1 false %93 = trunc i32 %90 to i8 br i1 %92, label %94, label %101 94: ; preds = %89, %87 %95 = phi i8 [ %88, %87 ], [ %93, %89 ] %96 = icmp eq i8 %95, 0 br i1 %96, label %97, label %101 97: ; preds = %94 call arm_aapcscc void @baz() %98 = call arm_aapcscc i32 @quux(i32 0) store i64 0, ptr %7, align 8 store i32 0, ptr %4, align 4 %99 = load volatile i64, ptr null, align 8 %100 = load i8, ptr getelementptr inbounds nuw (i8, ptr @global.1, i32 178), align 2 br label %101 101: ; preds = %97, %94, %89, %84, %78 %102 = phi i8 [ %100, %97 ], [ 0, %94 ], [ 0, %89 ], [ 0, %84 ], [ %79, %78 ] %103 = icmp eq i8 %102, 1 br i1 %103, label %104, label %119 104: ; preds = %101 %105 = load i8, ptr getelementptr inbounds nuw (i8, ptr @global.1, i32 193), align 1 %106 = trunc i8 %105 to i1 %107 = load i8, ptr getelementptr inbounds nuw (i8, ptr @global.1, i32 194), align 2 %108 = trunc i8 %107 to i1 %109 = select i1 %106, i1 true, i1 %108 br i1 %109, label %110, label %119 110: ; preds = %104 %111 = load i8, ptr getelementptr inbounds nuw (i8, ptr @global.1, i32 177), align 1 %112 = icmp eq i8 %111, 0 %113 = select i1 %112, i1 true, i1 %12 br i1 %113, label %119, label %114 114: ; preds = %110 %115 = load i32, ptr getelementptr inbounds nuw (i8, ptr @global.1, i32 140), align 4 %116 = icmp ult i32 %115, %5 br i1 %116, label %119, label %117 117: ; preds = %114 %118 = call arm_aapcscc i32 @quux(i32 1) store i32 0, ptr getelementptr inbounds nuw (i8, ptr @global.1, i32 140), align 4 store i64 0, ptr @global.2, align 8 br label %119 119: ; preds = %117, %114, %110, %104, %101 %120 = call arm_aapcscc i1 @zot.27() br i1 %120, label %135, label %121 121: ; preds = %119 %122 = load i8, ptr %4, align 1 %123 = icmp ne i8 %122, 0 %124 = load i64, ptr @0, align 8 %125 = icmp eq i64 %124, 0 %126 = select i1 %123, i1 %125, i1 false br i1 %126, label %127, label %130 127: ; preds = %121 store i64 0, ptr %4, align 8 %128 = call arm_aapcscc i64 @foo() store i64 %18, ptr @0, align 8 store i32 1, ptr %7, align 4 %129 = call arm_aapcscc i32 @quux(i32 0) br label %130 130: ; preds = %127, %121 store i64 0, ptr %4, align 8 br i1 %12, label %131, label %135 131: ; preds = %130 %132 = load volatile i1, ptr null, align 1 br i1 %16, label %135, label %133 133: ; preds = %131 %134 = call arm_aapcscc i1 @wombat.20(ptr null) br label %135 135: ; preds = %133, %131, %130, %119 call arm_aapcscc void @quux.21() %136 = call arm_aapcscc i32 @2() br label %49 } declare arm_aapcscc ptr @wombat() declare arm_aapcscc ptr @barney(i32) declare arm_aapcscc void @foo.13() declare arm_aapcscc void @pluto() define arm_aapcscc void @pluto.14() { store i32 -2147483641, ptr getelementptr inbounds nuw (i8, ptr @global.1, i32 156), align 4 store i32 0, ptr @global.1, align 4 ret void } declare arm_aapcscc void @baz.15() declare arm_aapcscc void @hoge() declare arm_aapcscc void @barney.16() declare arm_aapcscc i32 @blam(i32) declare arm_aapcscc i32 @spam.17(i32, ptr) declare arm_aapcscc void @widget() declare arm_aapcscc i32 @quux.18(i32) declare arm_aapcscc i1 @barney.19() declare arm_aapcscc i1 @wombat.20(ptr) define arm_aapcscc void @quux.21() { call arm_aapcscc void @ham.9(i1 false) ret void } define internal arm_aapcscc i32 @2() { %1 = load i8, ptr getelementptr inbounds nuw (i8, ptr @global.1, i32 178), align 2 switch i8 %1, label %7 [ i8 9, label %2 i8 3, label %2 i8 4, label %2 i8 0, label %2 i8 11, label %2 i8 7, label %4 i8 1, label %6 ] 2: ; preds = %6, %4, %0, %0, %0, %0, %0 %3 = phi i32 [ 0, %6 ], [ 0, %4 ], [ 0, %0 ], [ 0, %0 ], [ 0, %0 ], [ 0, %0 ], [ 0, %0 ] ret i32 0 4: ; preds = %0 %5 = call arm_aapcscc i1 @zot(i64 0) br label %2 6: ; preds = %0 store i8 0, ptr @global.6, align 1 br label %2 7: ; preds = %0 %8 = call arm_aapcscc i32 @quux(i32 0) ret i32 %8 } define arm_aapcscc void @widget.23() { store i32 1092040, ptr inttoptr (i32 -268432240 to ptr), align 4 ret void } declare arm_aapcscc void @widget.24() ; Function Attrs: minsize define internal arm_aapcscc void @3() #1 { %1 = load volatile i32, ptr null, align 4 %2 = load i32, ptr @global.1, align 4 %3 = and i32 %2, 1 %4 = icmp eq i32 %3, 0 br i1 %4, label %6, label %5 5: ; preds = %0 store volatile i32 653, ptr null, align 4 store volatile i32 0, ptr null, align 4 br label %6 6: ; preds = %5, %0 %7 = phi i32 [ 0, %5 ], [ %2, %0 ] %8 = load i8, ptr getelementptr inbounds nuw (i8, ptr @global.1, i32 187), align 1 %9 = trunc i8 %8 to i1 br i1 %9, label %10, label %17 10: ; preds = %6 %11 = and i32 %7, 64 %12 = icmp eq i32 %11, 0 %13 = zext i1 %12 to i8 call arm_aapcscc void @foo.10() store i8 %13, ptr getelementptr inbounds nuw (i8, ptr @global.1, i32 187), align 1 call arm_aapcscc void @foo.8(i32 1066) %14 = load i32, ptr @global.1, align 4 %15 = and i32 %14, 1 %16 = icmp eq i32 %15, 0 br label %17 17: ; preds = %10, %6 %18 = phi i1 [ %16, %10 ], [ true, %6 ] store i8 0, ptr getelementptr inbounds nuw (i8, ptr @global.1, i32 220), align 4 store i8 0, ptr getelementptr inbounds nuw (i8, ptr @global.1, i32 219), align 1 %19 = load i8, ptr getelementptr inbounds nuw (i8, ptr @global.1, i32 210), align 2 %20 = trunc i8 %19 to i1 br i1 %20, label %21, label %22 21: ; preds = %17 store i8 0, ptr getelementptr inbounds nuw (i8, ptr @global.1, i32 192), align 4 br label %22 22: ; preds = %21, %17 store i8 0, ptr getelementptr inbounds nuw (i8, ptr @global.1, i32 193), align 1 br i1 %18, label %26, label %23 23: ; preds = %22 %24 = load i16, ptr getelementptr inbounds nuw (i8, ptr @global.1, i32 170), align 2 %25 = icmp eq i16 %24, 0 br i1 %25, label %27, label %26 26: ; preds = %23, %22 br label %27 27: ; preds = %26, %23 %28 = phi i1 [ false, %23 ], [ true, %26 ] %29 = zext i1 %28 to i16 store i16 %29, ptr getelementptr inbounds nuw (i8, ptr @global.1, i32 170), align 2 %30 = load i8, ptr getelementptr inbounds nuw (i8, ptr @global, i32 368), align 4 %31 = trunc i8 %30 to i1 br i1 %31, label %32, label %34 32: ; preds = %27 %33 = call arm_aapcscc i1 @wombat.20(ptr null) br label %34 34: ; preds = %32, %27 %35 = load i8, ptr getelementptr inbounds nuw (i8, ptr @global.1, i32 180), align 4 %36 = icmp eq i8 %35, 0 br i1 %36, label %38, label %37 37: ; preds = %34 store i8 0, ptr @global.1, align 4 br label %38 38: ; preds = %37, %34 %39 = load i32, ptr @global.1, align 4 %40 = icmp eq i32 %39, 0 br i1 %40, label %41, label %42 41: ; preds = %38 store i8 1, ptr @global.1, align 4 br label %42 42: ; preds = %41, %38 %43 = load i8, ptr @1, align 1 %44 = trunc i8 %43 to i1 br i1 %44, label %47, label %45 45: ; preds = %42 store i8 1, ptr @global.1, align 4 store i8 1, ptr @1, align 1 %46 = call arm_aapcscc i32 @foo.25() call arm_aapcscc void @spam(i1 false) br label %47 47: ; preds = %45, %42 %48 = load i32, ptr @global.1, align 4 %49 = and i32 %48, -524289 %50 = load i8, ptr getelementptr inbounds nuw (i8, ptr @global.4, i32 222), align 2 %51 = and i8 %50, 1 %52 = zext i8 %51 to i32 %53 = shl i32 %52, 19 %54 = or i32 %49, %53 %55 = and i32 %54, -262145 %56 = load i8, ptr getelementptr inbounds nuw (i8, ptr @global.4, i32 219), align 1 %57 = shl i8 %56, 1 %58 = zext i8 %57 to i32 %59 = or i32 %55, %58 store i32 %59, ptr @global.1, align 4 %60 = load volatile i8, ptr null, align 1 %61 = icmp eq i8 %60, 0 br i1 %61, label %62, label %68 62: ; preds = %47 %63 = load i8, ptr inttoptr (i32 1097280 to ptr), align 1 %64 = icmp eq i8 %63, 0 br i1 %64, label %65, label %68 65: ; preds = %62 %66 = load volatile i8, ptr null, align 1 %67 = icmp ne i8 %66, 0 br label %68 68: ; preds = %65, %62, %47 %69 = phi i1 [ true, %62 ], [ true, %47 ], [ %67, %65 ] %70 = zext i1 %69 to i8 store i8 %70, ptr getelementptr inbounds nuw (i8, ptr @global.4, i32 218), align 2 %71 = and i32 %54, -131073 %72 = select i1 %69, i32 131072, i32 0 %73 = or i32 %71, %72 store i32 %73, ptr @global.1, align 4 %74 = load volatile i32, ptr null, align 4 %75 = and i32 %54, -4610 %76 = or i32 %75, 513 store i32 %76, ptr getelementptr inbounds nuw (i8, ptr @global.1, i32 12), align 4 %77 = call arm_aapcscc i8 @bar.26() %78 = and i32 %59, 1612447743 %79 = load i8, ptr getelementptr inbounds nuw (i8, ptr @global.1, i32 181), align 1 %80 = zext i8 %79 to i32 %81 = shl i32 %80, 21 %82 = and i32 %81, 14680064 %83 = or i32 %78, %82 %84 = load i8, ptr getelementptr inbounds nuw (i8, ptr @global.1, i32 178), align 2 %85 = zext i8 %84 to i32 %86 = or i32 %83, %85 %87 = load volatile i8, ptr null, align 1 %88 = zext i8 %87 to i32 %89 = shl i32 %88, 1 %90 = or i32 %86, %89 %91 = load i8, ptr getelementptr inbounds nuw (i8, ptr @global.1, i32 177), align 1 %92 = icmp eq i8 %91, 1 %93 = select i1 %92, i32 1073741824, i32 0 %94 = or i32 %90, %93 store i32 %94, ptr getelementptr inbounds nuw (i8, ptr @global.1, i32 12), align 4 %95 = load i32, ptr @global.1, align 4 %96 = and i32 %95, -1074266113 %97 = load i8, ptr getelementptr inbounds nuw (i8, ptr @global.1, i32 175), align 1 %98 = icmp eq i8 %97, 0 %99 = select i1 %98, i32 0, i32 1073741824 %100 = or i32 %96, %99 %101 = icmp eq i8 %91, 0 %102 = select i1 %101, i32 0, i32 -2147483648 %103 = or i32 %100, %102 %104 = load i8, ptr getelementptr inbounds nuw (i8, ptr @global.1, i32 215), align 1 %105 = and i8 %104, 2 %106 = zext i8 %105 to i32 %107 = or i32 %103, %106 %108 = load i32, ptr getelementptr inbounds nuw (i8, ptr @global.4, i32 296), align 4 %109 = icmp eq i32 %108, 0 %110 = select i1 %109, i32 0, i32 2 %111 = or i32 %107, %110 store i32 %111, ptr @global.1, align 4 ret void } declare arm_aapcscc i32 @foo.25() declare arm_aapcscc i8 @bar.26() declare arm_aapcscc i1 @zot.27() attributes #0 = { minsize nounwind } attributes #1 = { minsize "no-jump-tables"="true" }
Become a Patron
Sponsor on GitHub
Donate via PayPal
Compiler Explorer Shop
Source on GitHub
Mailing list
Installed libraries
Wiki
Report an issue
How it works
Contact the author
CE on Mastodon
CE on Bluesky
Statistics
Changelog
Version tree