diff options
author | Dylan McKay <me@dylanmckay.io> | 2017-07-23 23:00:55 +0000 |
---|---|---|
committer | Dylan McKay <me@dylanmckay.io> | 2017-07-23 23:00:55 +0000 |
commit | 94c636b7aae3645ad2a6d5f8ecc07bd2ff091a23 (patch) | |
tree | 15690292046a0514e5f872682779204be1891442 | |
parent | 67fe74b122abed2c6536e12545a0a6c121ae9acb (diff) | |
download | bcm5719-llvm-94c636b7aae3645ad2a6d5f8ecc07bd2ff091a23.tar.gz bcm5719-llvm-94c636b7aae3645ad2a6d5f8ecc07bd2ff091a23.zip |
[AVR] Improve the 'icall-func-pointer-correct-addr-space.ll' test
Patch by Carl Peto.
llvm-svn: 308856
-rw-r--r-- | llvm/test/CodeGen/AVR/icall-func-pointer-correct-addr-space.ll | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/llvm/test/CodeGen/AVR/icall-func-pointer-correct-addr-space.ll b/llvm/test/CodeGen/AVR/icall-func-pointer-correct-addr-space.ll index 17ac29e2cdb..674eed6532e 100644 --- a/llvm/test/CodeGen/AVR/icall-func-pointer-correct-addr-space.ll +++ b/llvm/test/CodeGen/AVR/icall-func-pointer-correct-addr-space.ll @@ -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 +} |