1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=aarch64-unknown-unknown -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s
5 define void @contract_s64_gpr(i64* %addr) { ret void }
6 define void @contract_s32_gpr(i32* %addr) { ret void }
7 define void @contract_s64_fpr(i64* %addr) { ret void }
8 define void @contract_s32_fpr(i32* %addr) { ret void }
9 define void @contract_s16_fpr(i16* %addr) { ret void }
12 name: contract_s64_gpr
18 ; CHECK-LABEL: name: contract_s64_gpr
19 ; CHECK: [[COPY:%[0-9]+]]:gpr64sp = COPY $x0
20 ; CHECK: [[COPY1:%[0-9]+]]:gpr64 = COPY $x1
21 ; CHECK: STRXui [[COPY1]], [[COPY]], 0 :: (store 8 into %ir.addr)
23 %1:gpr(s64) = COPY $x1
25 G_STORE %2:fpr(s64), %0 :: (store 8 into %ir.addr)
28 name: contract_s32_gpr
34 ; CHECK-LABEL: name: contract_s32_gpr
35 ; CHECK: [[COPY:%[0-9]+]]:gpr64sp = COPY $x0
36 ; CHECK: [[COPY1:%[0-9]+]]:gpr32 = COPY $w1
37 ; CHECK: STRWui [[COPY1]], [[COPY]], 0 :: (store 4 into %ir.addr)
39 %1:gpr(s32) = COPY $w1
41 G_STORE %2:fpr(s32), %0 :: (store 4 into %ir.addr)
44 name: contract_s64_fpr
50 ; CHECK-LABEL: name: contract_s64_fpr
51 ; CHECK: [[COPY:%[0-9]+]]:gpr64sp = COPY $x0
52 ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
53 ; CHECK: STRDui [[COPY1]], [[COPY]], 0 :: (store 8 into %ir.addr)
55 %1:fpr(s64) = COPY $d1
57 G_STORE %2:gpr(s64), %0 :: (store 8 into %ir.addr)
60 name: contract_s32_fpr
66 ; CHECK-LABEL: name: contract_s32_fpr
67 ; CHECK: [[COPY:%[0-9]+]]:gpr64sp = COPY $x0
68 ; CHECK: [[COPY1:%[0-9]+]]:fpr32 = COPY $s1
69 ; CHECK: STRSui [[COPY1]], [[COPY]], 0 :: (store 4 into %ir.addr)
71 %1:fpr(s32) = COPY $s1
73 G_STORE %2:gpr(s32), %0 :: (store 4 into %ir.addr)
76 name: contract_s16_fpr
82 ; CHECK-LABEL: name: contract_s16_fpr
83 ; CHECK: [[COPY:%[0-9]+]]:gpr64sp = COPY $x0
84 ; CHECK: [[COPY1:%[0-9]+]]:fpr16 = COPY $h1
85 ; CHECK: STRHui [[COPY1]], [[COPY]], 0 :: (store 2 into %ir.addr)
87 %1:fpr(s16) = COPY $h1
89 G_STORE %2:gpr(s16), %0 :: (store 2 into %ir.addr)