| ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 2 |
| ; RUN: llc < %s -mtriple=m68k-linux -verify-machineinstrs | FileCheck %s |
| |
| define i1 @return_true() { |
| ; CHECK-LABEL: return_true: |
| ; CHECK: .cfi_startproc |
| ; CHECK-NEXT: ; %bb.0: |
| ; CHECK-NEXT: moveq #1, %d0 |
| ; CHECK-NEXT: rts |
| ret i1 true |
| } |
| |
| define i8 @return_0_i8() { |
| ; CHECK-LABEL: return_0_i8: |
| ; CHECK: .cfi_startproc |
| ; CHECK-NEXT: ; %bb.0: |
| ; CHECK-NEXT: moveq #0, %d0 |
| ; CHECK-NEXT: rts |
| ret i8 0 |
| } |
| |
| define i16 @return_0_i16() { |
| ; CHECK-LABEL: return_0_i16: |
| ; CHECK: .cfi_startproc |
| ; CHECK-NEXT: ; %bb.0: |
| ; CHECK-NEXT: moveq #0, %d0 |
| ; CHECK-NEXT: rts |
| ret i16 0 |
| } |
| |
| define i32 @return_0_i32() { |
| ; CHECK-LABEL: return_0_i32: |
| ; CHECK: .cfi_startproc |
| ; CHECK-NEXT: ; %bb.0: |
| ; CHECK-NEXT: moveq #0, %d0 |
| ; CHECK-NEXT: rts |
| ret i32 0 |
| } |
| |
| define i64 @return_0_i64() { |
| ; CHECK-LABEL: return_0_i64: |
| ; CHECK: .cfi_startproc |
| ; CHECK-NEXT: ; %bb.0: |
| ; CHECK-NEXT: moveq #0, %d0 |
| ; CHECK-NEXT: move.l %d0, %d1 |
| ; CHECK-NEXT: rts |
| ret i64 0 |
| } |
| |
| define i16 @return_neg1_i16() { |
| ; CHECK-LABEL: return_neg1_i16: |
| ; CHECK: .cfi_startproc |
| ; CHECK-NEXT: ; %bb.0: |
| ; CHECK-NEXT: moveq #-1, %d0 |
| ; CHECK-NEXT: rts |
| ret i16 -1 |
| } |
| |
| define i32 @return_neg1_i32() { |
| ; CHECK-LABEL: return_neg1_i32: |
| ; CHECK: .cfi_startproc |
| ; CHECK-NEXT: ; %bb.0: |
| ; CHECK-NEXT: moveq #-1, %d0 |
| ; CHECK-NEXT: rts |
| ret i32 -1 |
| } |
| |
| define i8 @return_160_i8() { |
| ; CHECK-LABEL: return_160_i8: |
| ; CHECK: .cfi_startproc |
| ; CHECK-NEXT: ; %bb.0: |
| ; CHECK-NEXT: moveq #-96, %d0 |
| ; CHECK-NEXT: rts |
| ret i8 160 |
| } |
| |
| define i16 @return_160_i16() { |
| ; CHECK-LABEL: return_160_i16: |
| ; CHECK: .cfi_startproc |
| ; CHECK-NEXT: ; %bb.0: |
| ; CHECK-NEXT: move.w #160, %d0 |
| ; CHECK-NEXT: rts |
| ret i16 160 |
| } |
| |
| define i32 @return_160_i32() { |
| ; CHECK-LABEL: return_160_i32: |
| ; CHECK: .cfi_startproc |
| ; CHECK-NEXT: ; %bb.0: |
| ; CHECK-NEXT: moveq #95, %d0 |
| ; CHECK-NEXT: not.b %d0 |
| ; CHECK-NEXT: rts |
| ret i32 160 |
| } |
| |
| define i16 @return_14281_i16() { |
| ; CHECK-LABEL: return_14281_i16: |
| ; CHECK: .cfi_startproc |
| ; CHECK-NEXT: ; %bb.0: |
| ; CHECK-NEXT: move.w #14281, %d0 |
| ; CHECK-NEXT: rts |
| ret i16 14281 |
| } |
| |
| define i32 @return_14281_i32() { |
| ; CHECK-LABEL: return_14281_i32: |
| ; CHECK: .cfi_startproc |
| ; CHECK-NEXT: ; %bb.0: |
| ; CHECK-NEXT: move.l #14281, %d0 |
| ; CHECK-NEXT: rts |
| ret i32 14281 |
| } |
| |
| define i64 @return_14281_i64() { |
| ; CHECK-LABEL: return_14281_i64: |
| ; CHECK: .cfi_startproc |
| ; CHECK-NEXT: ; %bb.0: |
| ; CHECK-NEXT: moveq #0, %d0 |
| ; CHECK-NEXT: move.l #14281, %d1 |
| ; CHECK-NEXT: rts |
| ret i64 14281 |
| } |
| |
| define ptr @return_null() { |
| ; CHECK-LABEL: return_null: |
| ; CHECK: .cfi_startproc |
| ; CHECK-NEXT: ; %bb.0: |
| ; CHECK-NEXT: suba.l %a0, %a0 |
| ; CHECK-NEXT: rts |
| ret ptr null |
| } |
| |
| define ptr @return_nonnull() { |
| ; CHECK-LABEL: return_nonnull: |
| ; CHECK: .cfi_startproc |
| ; CHECK-NEXT: ; %bb.0: |
| ; CHECK-NEXT: move.w #200, %a0 |
| ; CHECK-NEXT: rts |
| ret ptr inttoptr (i32 200 to ptr) |
| } |
| |
| define ptr @return_large_nonnull() { |
| ; CHECK-LABEL: return_large_nonnull: |
| ; CHECK: .cfi_startproc |
| ; CHECK-NEXT: ; %bb.0: |
| ; CHECK-NEXT: move.l #74281, %a0 |
| ; CHECK-NEXT: rts |
| ret ptr inttoptr (i32 74281 to ptr) |
| } |