brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.8 KiB · f9d57fc Raw
98 lines · plain
1; RUN: llc < %s -mtriple=avr | FileCheck %s2 3define i8 @read8() {4; CHECK-LABEL: read85; CHECK: in r24, 86  %1 = load i8, ptr inttoptr (i16 40 to ptr)7  ret i8 %18}9 10define i16 @read16() {11; CHECK-LABEL: read1612; CHECK: in r24, 813; CHECK: in r25, 914  %1 = load i16, ptr inttoptr (i16 40 to ptr)15  ret i16 %116}17 18define i32 @read32() {19; CHECK-LABEL: read3220; CHECK: in r22, 821; CHECK: in r23, 922; CHECK: in r24, 1023; CHECK: in r25, 1124  %1 = load i32, ptr inttoptr (i16 40 to ptr)25  ret i32 %126}27 28define i64 @read64() {29; CHECK-LABEL: read6430; CHECK: in r18, 831; CHECK: in r19, 932; CHECK: in r20, 1033; CHECK: in r21, 1134; CHECK: in r22, 1235; CHECK: in r23, 1336; CHECK: in r24, 1437; CHECK: in r25, 1538  %1 = load i64, ptr inttoptr (i16 40 to ptr)39  ret i64 %140}41 42define void @write8() {43; CHECK-LABEL: write844; CHECK: out 845  store i8 22, ptr inttoptr (i16 40 to ptr)46  ret void47}48 49define void @write16() {50; CHECK-LABEL: write1651; CHECK: out 952; CHECK: out 853  store i16 1234, ptr inttoptr (i16 40 to ptr)54  ret void55}56 57define void @write32() {58; CHECK-LABEL: write3259; CHECK: out 1160; CHECK: out 1061; CHECK: out 962; CHECK: out 863  store i32 12345678, ptr inttoptr (i16 40 to ptr)64  ret void65}66 67define void @write64() {68; CHECK-LABEL: write6469; CHECK: out 1570; CHECK: out 1471; CHECK: out 1372; CHECK: out 1273; CHECK: out 1174; CHECK: out 1075; CHECK: out 976; CHECK: out 877  store i64 1234567891234567, ptr inttoptr (i16 40 to ptr)78  ret void79}80 81define void @sbi8() {82; CHECK-LABEL: sbi883; CHECK: sbi 8, 584  %1 = load i8, ptr inttoptr (i16 40 to ptr)85  %or = or i8 %1, 3286  store i8 %or, ptr inttoptr (i16 40 to ptr)87  ret void88}89 90define void @cbi8() {91; CHECK-LABEL: cbi892; CHECK: cbi 8, 593  %1 = load volatile i8, ptr inttoptr (i16 40 to ptr)94  %and = and i8 %1, -3395  store volatile i8 %and, ptr inttoptr (i16 40 to ptr)96  ret void97}98