brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · 5b8a5be Raw
50 lines · plain
1; RUN: llc -O1 < %s -mtriple=avr | FileCheck %s2 3target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"4target triple = "x86_64-apple-macosx10.9"5 6%Vs6UInt16 = type <{ i16 }>7%Sb = type <{ i1 }>8 9define hidden void @setServoAngle(i16) {10  ; CHECK-LABEL: entry11entry:12  %adjustedAngle = alloca %Vs6UInt16, align 213  %1 = bitcast ptr %adjustedAngle to ptr14  %adjustedAngle._value = getelementptr inbounds %Vs6UInt16, ptr %adjustedAngle, i32 0, i32 015  store i16 %0, ptr %adjustedAngle._value, align 216 17;print(unsignedInt: adjustedAngle &* UInt16(11))18; breaks here19  %adjustedAngle._value2 = getelementptr inbounds %Vs6UInt16, ptr %adjustedAngle, i32 0, i32 020  %2 = load i16, ptr %adjustedAngle._value2, align 221 22; CHECK: mov r22, r2423; CHECK: mov r23, r2524 25; CHECK-DAG: ldi r20, 026; CHECK-DAG: ldi r21, 027; CHECK-DAG: ldi r18, 1128; CHECK-DAG: ldi r19, 029 30; CHECK: mov r24, r2031; CHECK: mov r25, r2132; CHECK: call  __mulsi333  %3 = call { i16, i1 } @llvm.umul.with.overflow.i16(i16 %2, i16 11)34  %4 = extractvalue { i16, i1 } %3, 035  %5 = extractvalue { i16, i1 } %3, 136 37  ; above code looks fine, how is it lowered?38  %6 = call i1 @printDefaultParam()39  call void @print(i16 %4, i1 %6)40 41; CHECK: ret42  ret void43}44 45declare void @print(i16, i1)46declare i1 @printDefaultParam()47 48; Function Attrs: nounwind readnone speculatable49declare { i16, i1 } @llvm.umul.with.overflow.i16(i16, i16)50