aboutsummaryrefslogtreecommitdiff
path: root/llvm/test/Transforms/FunctionAttrs/mismatched-signature-invalidation.ll
blob: c42535756e8f1adc2d050db437768edc75ef48c0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
; RUN: opt -disable-output -passes="function(print<memoryssa>),cgscc(function-attrs),function(print<memoryssa>)" < %s 2>&1 | FileCheck %s

@g = external global i16

define i16 @fn() {
  %v = load i16, ptr @g
  ret i16 %v
}

declare void @fn2(i16)

; CHECK-LABEL: MemorySSA for function: test
; CHECK: 1 = MemoryDef(3)
; CHECK-NEXT: %call = call i16 @fn(i32 0)

; CHECK-LABEL: MemorySSA for function: test
; CHECK: MemoryUse(2)
; CHECK-NEXT: %call = call i16 @fn(i32 0)

define void @test() {
entry:
  br label %loop

loop:
  %call = call i16 @fn(i32 0) ; intentional signature mismatch
  call void @fn2(i16 %call)
  br i1 false, label %loop, label %exit

exit:
  ret void
}