From 747535c69ed9e02e26319d39805eff52ff86fd7b Mon Sep 17 00:00:00 2001 From: Dylan McKay Date: Sun, 23 Jul 2017 23:00:55 +0000 Subject: [PATCH] [AVR] Improve the 'icall-func-pointer-correct-addr-space.ll' test Patch by Carl Peto. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@308856 91177308-0d34-0410-b5e6-96231b3b80d8 --- .../icall-func-pointer-correct-addr-space.ll | 28 +++++++++++++------ 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/test/CodeGen/AVR/icall-func-pointer-correct-addr-space.ll b/test/CodeGen/AVR/icall-func-pointer-correct-addr-space.ll index 17ac29e2cdb..674eed6532e 100644 --- a/test/CodeGen/AVR/icall-func-pointer-correct-addr-space.ll +++ b/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 +} -- 2.50.1