; ModuleID = 'sumSquares.c' source_filename = "sumSquares.c" target datalayout = "e-m:e-p:32:16-i16:16-i32:16-i64:16-f32:16-f64:16-a:8-n8:16-S8" target triple = "w65816" ; Function Attrs: nofree norecurse nosync nounwind memory(none) define dso_local i32 @sumSquares(i16 noundef zeroext %n) local_unnamed_addr #0 { entry: %cmp.not6 = icmp eq i16 %n, 0 br i1 %cmp.not6, label %for.cond.cleanup, label %for.body.preheader for.body.preheader: ; preds = %entry %0 = add i16 %n, 1 %umax = tail call i16 @llvm.umax.i16(i16 %0, i16 2) br label %for.body for.cond.cleanup: ; preds = %for.body, %entry %total.0.lcssa = phi i32 [ 0, %entry ], [ %add, %for.body ] ret i32 %total.0.lcssa for.body: ; preds = %for.body.preheader, %for.body %i.08 = phi i16 [ %inc, %for.body ], [ 1, %for.body.preheader ] %total.07 = phi i32 [ %add, %for.body ], [ 0, %for.body.preheader ] %conv = zext i16 %i.08 to i32 %mul = mul nuw i32 %conv, %conv %add = add i32 %mul, %total.07 %inc = add nuw i16 %i.08, 1 %exitcond = icmp eq i16 %inc, %umax br i1 %exitcond, label %for.cond.cleanup, label %for.body, !llvm.loop !7 } ; Function Attrs: nocallback nocreateundeforpoison nofree nosync nounwind speculatable willreturn memory(none) declare i16 @llvm.umax.i16(i16, i16) #1 attributes #0 = { nofree norecurse nosync nounwind memory(none) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" } attributes #1 = { nocallback nocreateundeforpoison nofree nosync nounwind speculatable willreturn memory(none) } !llvm.module.flags = !{!0, !1} !llvm.ident = !{!2} !llvm.errno.tbaa = !{!3} !0 = !{i32 1, !"wchar_size", i32 2} !1 = !{i32 7, !"frame-pointer", i32 2} !2 = !{!"clang version 23.0.0git (https://github.com/llvm-mos/llvm-mos.git c798c31416f72b395c658b5502d281a162387ab1)"} !3 = !{!4, !4, i64 0} !4 = !{!"int", !5, i64 0} !5 = !{!"omnipotent char", !6, i64 0} !6 = !{!"Simple C/C++ TBAA"} !7 = distinct !{!7, !8} !8 = !{!"llvm.loop.mustprogress"}