[AVR] Improve the 'icall-func-pointer-correct-addr-space.ll' test
Patch by Carl Peto. llvm-svn: 308856
This commit is contained in:
parent
67fe74b122
commit
94c636b7aa
|
@ -1,15 +1,27 @@
|
|||
; RUN: llc -mattr=lpm,lpmw < %s -march=avr | FileCheck %s
|
||||
|
||||
declare void @callback(i16 zeroext)
|
||||
@callbackPtr = common global void (i16)* null, align 8
|
||||
@myValuePtr = common global i16* null, align 8
|
||||
|
||||
; CHECK-LABEL: foo
|
||||
define void @foo() {
|
||||
@externalConstant = external global i16, align 2
|
||||
|
||||
declare void @externalFunction(i16 signext)
|
||||
declare void @bar(i8 signext, void (i16)*, i16*)
|
||||
|
||||
; CHECK-LABEL: loadCallbackPtr
|
||||
define void @loadCallbackPtr() {
|
||||
entry:
|
||||
; CHECK: ldi r{{[0-9]+}}, pm_lo8(callback)
|
||||
; CHECK-NEXT: ldi r{{[0-9]+}}, pm_hi8(callback)
|
||||
call void @bar(i8 zeroext undef, void (i16)* @callback)
|
||||
; CHECK: ldi r{{[0-9]+}}, pm_lo8(externalFunction)
|
||||
; CHECK-NEXT: ldi r{{[0-9]+}}, pm_hi8(externalFunction)
|
||||
store void (i16)* @externalFunction, void (i16)** @callbackPtr, align 8
|
||||
ret void
|
||||
}
|
||||
|
||||
declare void @bar(i8 zeroext, void (i16)*)
|
||||
|
||||
; CHECK-LABEL: loadValuePtr
|
||||
define void @loadValuePtr() {
|
||||
entry:
|
||||
; CHECK: ldi r{{[0-9]+}}, lo8(externalConstant)
|
||||
; CHECK-NEXT: ldi r{{[0-9]+}}, hi8(externalConstant)
|
||||
store i16* @externalConstant, i16** @myValuePtr, align 8
|
||||
ret void
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue