diff options
Diffstat (limited to 'test/CodeGen/AVR/return.ll')
| -rw-r--r-- | test/CodeGen/AVR/return.ll | 142 |
1 files changed, 0 insertions, 142 deletions
diff --git a/test/CodeGen/AVR/return.ll b/test/CodeGen/AVR/return.ll deleted file mode 100644 index d57f435fd11c..000000000000 --- a/test/CodeGen/AVR/return.ll +++ /dev/null @@ -1,142 +0,0 @@ -; RUN: llc -mattr=avr6,sram < %s -march=avr | FileCheck %s - -;TODO: test returning byval structs -; TODO: test naked functions - -define void @return_void() { -; CHECK: return_void:{{[a-zA-Z0-9 #@]*}} -; CHECK-NEXT: #{{[a-zA-Z0-9 #@]*}} -; CHECK-NEXT: ret - ret void -} - -define i8 @return8_imm() { -; CHECK-LABEL: return8_imm: -; CHECK: ldi r24, 5 - ret i8 5 -} - -define i8 @return8_arg(i8 %x) { -; CHECK: return8_arg:{{[a-zA-Z0-9 #@]*}} -; CHECK-NEXT: #{{[a-zA-Z0-9 #@]*}} -; CHECK-NEXT: ret - ret i8 %x -} - -define i8 @return8_arg2(i8 %x, i8 %y, i8 %z) { -; CHECK-LABEL: return8_arg2: -; CHECK: mov r24, r20 - ret i8 %z -} - -define i16 @return16_imm() { -; CHECK-LABEL: return16_imm: -; CHECK: ldi r24, 57 -; CHECK: ldi r25, 48 - ret i16 12345 -} - -define i16 @return16_arg(i16 %x) { -; CHECK: return16_arg:{{[a-zA-Z0-9 #@]*}} -; CHECK-NEXT: #{{[a-zA-Z0-9 #@]*}} -; CHECK-NEXT: ret - ret i16 %x -} - -define i16 @return16_arg2(i16 %x, i16 %y, i16 %z) { -; CHECK-LABEL: return16_arg2: -; CHECK: movw r24, r20 - ret i16 %z -} - -define i32 @return32_imm() { -; CHECK-LABEL: return32_imm: -; CHECK: ldi r22, 21 -; CHECK: ldi r23, 205 -; CHECK: ldi r24, 91 -; CHECK: ldi r25, 7 - ret i32 123456789 -} - -define i32 @return32_arg(i32 %x) { -; CHECK: return32_arg:{{[a-zA-Z0-9 #@]*}} -; CHECK-NEXT: #{{[a-zA-Z0-9 #@]*}} -; CHECK-NEXT: ret - ret i32 %x -} - -define i32 @return32_arg2(i32 %x, i32 %y, i32 %z) { -; CHECK-LABEL: return32_arg2: -; CHECK: movw r22, r14 -; CHECK: movw r24, r16 - ret i32 %z -} - -define i64 @return64_imm() { -; CHECK-LABEL: return64_imm: -; CHECK: ldi r18, 204 -; CHECK: ldi r19, 204 -; CHECK: ldi r20, 104 -; CHECK: ldi r21, 37 -; CHECK: ldi r22, 25 -; CHECK: ldi r23, 22 -; CHECK: ldi r24, 236 -; CHECK: ldi r25, 190 - ret i64 13757395258967641292 -} - -define i64 @return64_arg(i64 %x) { -; CHECK: return64_arg:{{[a-zA-Z0-9 #@]*}} -; CHECK-NEXT: #{{[a-zA-Z0-9 #@]*}} -; CHECK-NEXT: ret - ret i64 %x -} - -define i64 @return64_arg2(i64 %x, i64 %y, i64 %z) { -; CHECK-LABEL: return64_arg2: -; CHECK: push r28 -; CHECK: push r29 -; CHECK: ldd r18, Y+5 -; CHECK: ldd r19, Y+6 -; CHECK: ldd r20, Y+7 -; CHECK: ldd r21, Y+8 -; CHECK: ldd r22, Y+9 -; CHECK: ldd r23, Y+10 -; CHECK: ldd r24, Y+11 -; CHECK: ldd r25, Y+12 -; CHECK: pop r29 -; CHECK: pop r28 - ret i64 %z -} - -define i32 @return64_trunc(i32 %a, i32 %b, i32 %c, i64 %d) { -; CHECK-LABEL: return64_trunc: -; CHECK: push r28 -; CHECK: push r29 -; CHECK: ldd r22, Y+5 -; CHECK: ldd r23, Y+6 -; CHECK: ldd r24, Y+7 -; CHECK: ldd r25, Y+8 -; CHECK: pop r29 -; CHECK: pop r28 - %result = trunc i64 %d to i32 - ret i32 %result -} - -define i32 @naked(i32 %x) naked { -; CHECK-LABEL: naked: -; CHECK-NOT: ret - ret i32 %x -} - -define avr_intrcc void @interrupt_handler() { -; CHECK-LABEL: interrupt_handler: -; CHECK: reti - ret void -} - -define avr_signalcc void @signal_handler() { -; CHECK-LABEL: signal_handler: -; CHECK: reti - ret void -} |
