1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=aarch64-- -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s
5 target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
7 define i8 @const_s8() { ret i8 42 }
8 define i16 @const_s16() { ret i16 42 }
9 define i32 @const_s32() { ret i32 42 }
10 define i64 @const_s64() { ret i64 1234567890123 }
12 define i32 @fconst_s32() { ret i32 42 }
13 define i64 @fconst_s64() { ret i64 1234567890123 }
14 define float @fconst_s32_0() { ret float 0.0 }
15 define double @fconst_s64_0() { ret double 0.0 }
24 ; CHECK-LABEL: name: const_s8
25 ; CHECK: [[MOVi32imm:%[0-9]+]]:gpr32 = MOVi32imm 42
26 ; CHECK: [[COPY:%[0-9]+]]:gpr32all = COPY [[MOVi32imm]]
27 ; CHECK: $w0 = COPY [[COPY]]
28 %0:gpr(s8) = G_CONSTANT i8 42
29 %1:gpr(s32) = G_ANYEXT %0(s8)
39 ; CHECK-LABEL: name: const_s16
40 ; CHECK: [[MOVi32imm:%[0-9]+]]:gpr32 = MOVi32imm 42
41 ; CHECK: [[COPY:%[0-9]+]]:gpr32all = COPY [[MOVi32imm]]
42 ; CHECK: $w0 = COPY [[COPY]]
43 %0:gpr(s16) = G_CONSTANT i16 42
44 %1:gpr(s32) = G_ANYEXT %0(s16)
53 - { id: 0, class: gpr }
57 ; CHECK-LABEL: name: const_s32
58 ; CHECK: [[MOVi32imm:%[0-9]+]]:gpr32 = MOVi32imm 42
59 ; CHECK: $w0 = COPY [[MOVi32imm]]
60 %0(s32) = G_CONSTANT i32 42
69 - { id: 0, class: gpr }
73 ; CHECK-LABEL: name: const_s64
74 ; CHECK: [[MOVi64imm:%[0-9]+]]:gpr64 = MOVi64imm 1234567890123
75 ; CHECK: $x0 = COPY [[MOVi64imm]]
76 %0(s64) = G_CONSTANT i64 1234567890123
85 - { id: 0, class: fpr }
89 ; CHECK-LABEL: name: fconst_s32
90 ; CHECK: [[FMOVSi:%[0-9]+]]:fpr32 = FMOVSi 12
91 ; CHECK: $s0 = COPY [[FMOVSi]]
92 %0(s32) = G_FCONSTANT float 3.5
101 - { id: 0, class: fpr }
105 ; CHECK-LABEL: name: fconst_s64
106 ; CHECK: [[FMOVDi:%[0-9]+]]:fpr64 = FMOVDi 112
107 ; CHECK: $d0 = COPY [[FMOVDi]]
108 %0(s64) = G_FCONSTANT double 1.0
115 regBankSelected: true
117 - { id: 0, class: fpr }
121 ; CHECK-LABEL: name: fconst_s32_0
122 ; CHECK: [[FMOVS0_:%[0-9]+]]:fpr32 = FMOVS0
123 ; CHECK: $s0 = COPY [[FMOVS0_]]
124 %0(s32) = G_FCONSTANT float 0.0
131 regBankSelected: true
133 - { id: 0, class: fpr }
137 ; CHECK-LABEL: name: fconst_s64_0
138 ; CHECK: [[FMOVD0_:%[0-9]+]]:fpr64 = FMOVD0
139 ; CHECK: $x0 = COPY [[FMOVD0_]]
140 %0(s64) = G_FCONSTANT double 0.0