| ; Ensure that all immediate values that are 32-bits or less can be loaded |
| ; using a single instruction and that immediate values 64-bits or less can |
| ; be loaded using two instructions. |
| ; |
| ; RUN: llc < %s -march=mblaze | FileCheck %s |
| ; RUN: llc < %s -march=mblaze -mattr=+fpu | FileCheck -check-prefix=FPU %s |
| |
| define i8 @retimm_i8() { |
| ; CHECK: retimm_i8: |
| ; CHECK: rtsd |
| ; CHECK-NEXT: add |
| ; FPU: retimm_i8: |
| ; FPU: rtsd |
| ; FPU-NEXT: add |
| ret i8 123 |
| } |
| |
| define i16 @retimm_i16() { |
| ; CHECK: retimm_i16: |
| ; CHECK: rtsd |
| ; CHECK-NEXT: add |
| ; FPU: retimm_i16: |
| ; FPU: rtsd |
| ; FPU-NEXT: add |
| ret i16 31212 |
| } |
| |
| define i32 @retimm_i32() { |
| ; CHECK: retimm_i32: |
| ; CHECK: add |
| ; CHECK-NEXT: rtsd |
| ; FPU: retimm_i32: |
| ; FPU: add |
| ; FPU-NEXT: rtsd |
| ret i32 2938128 |
| } |
| |
| define i64 @retimm_i64() { |
| ; CHECK: retimm_i64: |
| ; CHECK: add |
| ; CHECK-NEXT: rtsd |
| ; CHECK-NEXT: add |
| ; FPU: retimm_i64: |
| ; FPU: add |
| ; FPU-NEXT: rtsd |
| ; FPU-NEXT: add |
| ret i64 94581823 |
| } |
| |
| define float @retimm_float() { |
| ; CHECK: retimm_float: |
| ; CHECK: add |
| ; CHECK-NEXT: rtsd |
| ; FPU: retimm_float: |
| ; FPU: or |
| ; FPU-NEXT: rtsd |
| ret float 12.0 |
| } |
| |
| define double @retimm_double() { |
| ; CHECK: retimm_double: |
| ; CHECK: add |
| ; CHECK-NEXT: add |
| ; CHECK-NEXT: rtsd |
| ; FPU: retimm_double: |
| ; FPU: add |
| ; FPU-NEXT: add |
| ; FPU-NEXT: rtsd |
| ret double 598382.39283873 |
| } |