Re-land [openmp] Fix warnings when building on Windows with latest MSVC or Clang...
[llvm-project.git] / llvm / test / CodeGen / AVR / addrspacecast.ll
blobeb582e1229c75e84c673673a00fb6046c5e0e9c5
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc < %s -mtriple=avr | FileCheck %s
4 @global = external global i8
5 @progmem = external addrspace(1) global i8
7 declare void @func() addrspace(1)
8 declare void @doCallback(ptr) addrspace(1)
10 define ptr @casttodata(ptr addrspace(1) %funcptr) addrspace(1) {
11 ; CHECK-LABEL: casttodata:
12 ; CHECK:       ; %bb.0:
13 ; CHECK-NEXT:    ret
14   %result = addrspacecast ptr addrspace(1) %funcptr to ptr
15   ret ptr %result
18 define ptr addrspace(1) @casttofuncptr(ptr %data) addrspace(1) {
19 ; CHECK-LABEL: casttofuncptr:
20 ; CHECK:       ; %bb.0:
21 ; CHECK-NEXT:    ret
22   %result = addrspacecast ptr %data to ptr addrspace(1)
23   ret ptr addrspace(1) %result
26 define ptr addrspace(1) @castglobal() addrspace(1) {
27 ; CHECK-LABEL: castglobal:
28 ; CHECK:       ; %bb.0:
29 ; CHECK-NEXT:    ldi r24, lo8(global)
30 ; CHECK-NEXT:    ldi r25, hi8(global)
31 ; CHECK-NEXT:    ret
32   %result = addrspacecast ptr @global to ptr addrspace(1)
33   ret ptr addrspace(1) %result
36 define ptr @castprogmem() addrspace(1) {
37 ; CHECK-LABEL: castprogmem:
38 ; CHECK:       ; %bb.0:
39 ; CHECK-NEXT:    ldi r24, lo8(progmem)
40 ; CHECK-NEXT:    ldi r25, hi8(progmem)
41 ; CHECK-NEXT:    ret
42   %result = addrspacecast ptr addrspace(1) @progmem to ptr
43   ret ptr %result
46 define ptr @castfunc() addrspace(1) {
47 ; CHECK-LABEL: castfunc:
48 ; CHECK:       ; %bb.0:
49 ; CHECK-NEXT:    ldi r24, pm_lo8(func)
50 ; CHECK-NEXT:    ldi r25, pm_hi8(func)
51 ; CHECK-NEXT:    ret
52   %result = addrspacecast ptr addrspace(1) @func to ptr
53   ret ptr %result
56 define void @callCallback() addrspace(1) {
57 ; CHECK-LABEL: callCallback:
58 ; CHECK:       ; %bb.0:
59 ; CHECK-NEXT:    ldi r24, pm_lo8(func)
60 ; CHECK-NEXT:    ldi r25, pm_hi8(func)
61 ; CHECK-NEXT:    rcall doCallback
62 ; CHECK-NEXT:    ret
63   call addrspace(1) void @doCallback(ptr addrspacecast (ptr addrspace(1) @func to ptr))
64   ret void