brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.6 KiB · 334bfba Raw
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