75 lines · plain
1; RUN: llc < %s -mtriple=msp430 | FileCheck %s2target datalayout = "e-p:16:16:16-i1:8:8-i8:8:8-i16:16:16-i32:16:16"3target triple = "msp430-generic-generic"4 5define i16 @am1(i16 %x, ptr %a) nounwind {6 %1 = load i16, ptr %a7 %2 = or i16 %1,%x8 ret i16 %29}10; CHECK-LABEL: am1:11; CHECK: bis 0(r13), r1212 13@foo = external global i1614 15define i16 @am2(i16 %x) nounwind {16 %1 = load i16, ptr @foo17 %2 = or i16 %1,%x18 ret i16 %219}20; CHECK-LABEL: am2:21; CHECK: bis &foo, r1222 23@bar = internal constant [2 x i8] [ i8 32, i8 64 ]24 25define i8 @am3(i8 %x, i16 %n) nounwind {26 %1 = getelementptr [2 x i8], ptr @bar, i16 0, i16 %n27 %2 = load i8, ptr %128 %3 = or i8 %2,%x29 ret i8 %330}31; CHECK-LABEL: am3:32; CHECK: bis.b bar(r13), r1233 34define i16 @am4(i16 %x) nounwind {35 %1 = load volatile i16, ptr inttoptr(i16 32 to ptr)36 %2 = or i16 %1,%x37 ret i16 %238}39; CHECK-LABEL: am4:40; CHECK: bis &32, r1241 42define i16 @am5(i16 %x, ptr %a) nounwind {43 %1 = getelementptr i16, ptr %a, i16 244 %2 = load i16, ptr %145 %3 = or i16 %2,%x46 ret i16 %347}48; CHECK-LABEL: am5:49; CHECK: bis 4(r13), r1250 51%S = type { i16, i16 }52@baz = common global %S zeroinitializer, align 153 54define i16 @am6(i16 %x) nounwind {55 %1 = load i16, ptr getelementptr (%S, ptr @baz, i32 0, i32 1)56 %2 = or i16 %1,%x57 ret i16 %258}59; CHECK-LABEL: am6:60; CHECK: bis &baz+2, r1261 62%T = type { i16, [2 x i8] }63@duh = internal constant %T { i16 16, [2 x i8][i8 32, i8 64 ] }64 65define i8 @am7(i8 %x, i16 %n) nounwind {66 %1 = getelementptr %T, ptr @duh, i32 0, i32 167 %2 = getelementptr [2 x i8], ptr %1, i16 0, i16 %n68 %3= load i8, ptr %269 %4 = or i8 %3,%x70 ret i8 %471}72; CHECK-LABEL: am7:73; CHECK: bis.b duh+2(r13), r1274 75