brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.8 KiB · b5e4988 Raw
77 lines · plain
1; RUN: llc -mtriple=thumb-eabi -mcpu=arm1156t2-s -mattr=+thumb2 %s -o - | FileCheck %s2 3define i16 @f1(i16 %a, ptr %v) {4; CHECK-LABEL: f1:5; CHECK: strh r0, [r1]6        store i16 %a, ptr %v7        ret i16 %a8}9 10define i16 @f2(i16 %a, ptr %v) {11; CHECK-LABEL: f2:12; CHECK: strh.w r0, [r1, #4092]13        %tmp2 = getelementptr i16, ptr %v, i32 204614        store i16 %a, ptr %tmp215        ret i16 %a16}17 18define i16 @f2a(i16 %a, ptr %v) {19; CHECK-LABEL: f2a:20; CHECK: strh r0, [r1, #-128]21        %tmp2 = getelementptr i16, ptr %v, i32 -6422        store i16 %a, ptr %tmp223        ret i16 %a24}25 26define i16 @f3(i16 %a, ptr %v) {27; CHECK-LABEL: f3:28; CHECK: mov.w r2, #409629; CHECK: strh r0, [r1, r2]30        %tmp2 = getelementptr i16, ptr %v, i32 204831        store i16 %a, ptr %tmp232        ret i16 %a33}34 35define i16 @f4(i16 %a, i32 %base) {36entry:37; CHECK-LABEL: f4:38; CHECK: strh r0, [r1, #-128]39        %tmp1 = sub i32 %base, 12840        %tmp2 = inttoptr i32 %tmp1 to ptr41        store i16 %a, ptr %tmp242        ret i16 %a43}44 45define i16 @f5(i16 %a, i32 %base, i32 %offset) {46entry:47; CHECK-LABEL: f5:48; CHECK: strh r0, [r1, r2]49        %tmp1 = add i32 %base, %offset50        %tmp2 = inttoptr i32 %tmp1 to ptr51        store i16 %a, ptr %tmp252        ret i16 %a53}54 55define i16 @f6(i16 %a, i32 %base, i32 %offset) {56entry:57; CHECK-LABEL: f6:58; CHECK: strh.w r0, [r1, r2, lsl #2]59        %tmp1 = shl i32 %offset, 260        %tmp2 = add i32 %base, %tmp161        %tmp3 = inttoptr i32 %tmp2 to ptr62        store i16 %a, ptr %tmp363        ret i16 %a64}65 66define i16 @f7(i16 %a, i32 %base, i32 %offset) {67entry:68; CHECK-LABEL: f7:69; CHECK: lsrs r2, r2, #270; CHECK: strh r0, [r1, r2]71        %tmp1 = lshr i32 %offset, 272        %tmp2 = add i32 %base, %tmp173        %tmp3 = inttoptr i32 %tmp2 to ptr74        store i16 %a, ptr %tmp375        ret i16 %a76}77