xref: /llvm-project/llvm/test/tools/lto/discard-value-names.ll (revision f3ac55fab8c30e71987120f76da70b5b6e9075f7)
177724d5fSFlorian Hahn; RUN: llvm-as %s -o %t.o
277724d5fSFlorian Hahn; RUN: %ld64 -lto_library %llvmshlibdir/libLTO.dylib -dylib -arch x86_64 -macos_version_min 10.10.0 -o %t.dylib %t.o -save-temps  -undefined dynamic_lookup -exported_symbol _bar -lSystem -mllvm -lto-discard-value-names
377724d5fSFlorian Hahn; RUN: llvm-dis %t.dylib.lto.opt.bc -o - | FileCheck --check-prefix=DISCARD %s
477724d5fSFlorian Hahn
577724d5fSFlorian Hahn; RUN: %ld64 -lto_library %llvmshlibdir/libLTO.dylib -dylib -arch x86_64 -macos_version_min 10.10.0 -o %t.dylib %t.o -save-temps  -undefined dynamic_lookup -exported_symbol _bar -lSystem -mllvm -lto-discard-value-names=false
677724d5fSFlorian Hahn; RUN: llvm-dis %t.dylib.lto.opt.bc -o - | FileCheck --check-prefix=KEEP %s
777724d5fSFlorian Hahn
874f6ae9fSFlorian Hahn; The test requires asserts, as it depends on the default value for
974f6ae9fSFlorian Hahn; -lto-discard-value-names at the moment.
1074f6ae9fSFlorian Hahn
1174f6ae9fSFlorian Hahn; REQUIRES: asserts
1274f6ae9fSFlorian Hahn
13*f3ac55faSFlorian Hahn; DISCARD: %{{[0-9]+}} = icmp
1477724d5fSFlorian Hahn; DISCARD: %add = add i32
1577724d5fSFlorian Hahn
1677724d5fSFlorian Hahn; KEEP: %cmp.i = icmp
1777724d5fSFlorian Hahn; KEEP : %add = add i32
1877724d5fSFlorian Hahn
1977724d5fSFlorian Hahntarget datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
2077724d5fSFlorian Hahntarget triple = "x86_64-apple-macosx10.10.0"
2177724d5fSFlorian Hahn
2277724d5fSFlorian Hahndeclare void @external()
2377724d5fSFlorian Hahn
2477724d5fSFlorian Hahndefine internal i32 @foo(i32 %a, i32 %b) {
2577724d5fSFlorian Hahnentry:
2677724d5fSFlorian Hahn  %cmp = icmp ult i32 %a, %b
2777724d5fSFlorian Hahn  br i1 %cmp, label %then, label %else
2877724d5fSFlorian Hahn
2977724d5fSFlorian Hahnthen:
3077724d5fSFlorian Hahn  call void @external()
3177724d5fSFlorian Hahn  ret i32 10
3277724d5fSFlorian Hahn
3377724d5fSFlorian Hahnelse:
3477724d5fSFlorian Hahn  ret i32 20
3577724d5fSFlorian Hahn}
3677724d5fSFlorian Hahn
3777724d5fSFlorian Hahndefine i32 @bar(i32 %a) {
3877724d5fSFlorian Hahn  %res = call i32 @foo(i32 %a, i32 10)
3977724d5fSFlorian Hahn  %add = add i32 %res, %a
4077724d5fSFlorian Hahn  ret i32 %add
4177724d5fSFlorian Hahn}
42