; ModuleID = 'add.bc'
source_filename = "add.c"
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-pc-linux-gnu"

; Function Attrs: noinline norecurse nounwind readnone sspstrong uwtable
define i8 @add(i32, i32) local_unnamed_addr #0 {

  %start = call i8** @dummy()
  %load = load i8*, i8** %start            ; 192
  tail call void @_ZdlPv(i8* %load) #4     ; 192 

  ; now we start the bad news geps
  %part1 = getelementptr i8*, i8** %start, i32 %0    ; 128 
  %part2 = getelementptr i8*, i8** %part1, i32 %1    ; 192 
  
  %resultload = load i8*, i8** %part2
  %result = load i8, i8* %resultload

  ret i8 %result 
}

; Function Attrs: nobuiltin nounwind
declare void @_ZdlPv(i8*) local_unnamed_addr #1
declare i8** @dummy() local_unnamed_addr #2


attributes #0 = { noinline norecurse nounwind readnone sspstrong uwtable "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" }
