-
-
Save nikic/6ccde4b5320f7f4a6c5e7bd3ff8db1f6 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; ModuleID = 'test722.ll' | |
source_filename = "test.c" | |
target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128" | |
target triple = "aarch64" | |
; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) uwtable | |
define dso_local i32 @quant_4x4(ptr nocapture noundef %dct, ptr nocapture noundef readonly %mf, ptr nocapture noundef readonly %bias) local_unnamed_addr #0 { | |
entry: | |
%0 = load i16, ptr %dct, align 2 | |
%conv = sext i16 %0 to i32 | |
%cmp1 = icmp sgt i16 %0, 0 | |
%1 = load i16, ptr %bias, align 2 | |
%conv5 = zext i16 %1 to i32 | |
%2 = load i16, ptr %mf, align 2 | |
%conv11 = zext i16 %2 to i32 | |
br i1 %cmp1, label %if.then, label %if.else | |
if.then: ; preds = %entry | |
%add = add nuw nsw i32 %conv5, %conv | |
%mul = mul i32 %add, %conv11 | |
%shr = lshr i32 %mul, 16 | |
%conv12 = trunc i32 %shr to i16 | |
br label %if.end | |
if.else: ; preds = %entry | |
%add21 = sub nsw i32 %conv5, %conv | |
%mul25 = mul i32 %add21, %conv11 | |
%shr26 = lshr i32 %mul25, 16 | |
%3 = trunc i32 %shr26 to i16 | |
%conv28 = sub i16 0, %3 | |
br label %if.end | |
if.end: ; preds = %if.else, %if.then | |
%storemerge = phi i16 [ %conv28, %if.else ], [ %conv12, %if.then ] | |
store i16 %storemerge, ptr %dct, align 2 | |
%arrayidx.1 = getelementptr inbounds i16, ptr %dct, i64 1 | |
%4 = load i16, ptr %arrayidx.1, align 2 | |
%conv.1 = sext i16 %4 to i32 | |
%cmp1.1 = icmp sgt i16 %4, 0 | |
%arrayidx4.1 = getelementptr inbounds i16, ptr %bias, i64 1 | |
%5 = load i16, ptr %arrayidx4.1, align 2 | |
%conv5.1 = zext i16 %5 to i32 | |
%arrayidx10.1 = getelementptr inbounds i16, ptr %mf, i64 1 | |
%6 = load i16, ptr %arrayidx10.1, align 2 | |
%conv11.1 = zext i16 %6 to i32 | |
br i1 %cmp1.1, label %if.then.1, label %if.else.1 | |
if.else.1: ; preds = %if.end | |
%add21.1 = sub nsw i32 %conv5.1, %conv.1 | |
%mul25.1 = mul i32 %add21.1, %conv11.1 | |
%shr26.1 = lshr i32 %mul25.1, 16 | |
%7 = trunc i32 %shr26.1 to i16 | |
%conv28.1 = sub i16 0, %7 | |
br label %if.end.1 | |
if.then.1: ; preds = %if.end | |
%add.1 = add nuw nsw i32 %conv5.1, %conv.1 | |
%mul.1 = mul i32 %add.1, %conv11.1 | |
%shr.1 = lshr i32 %mul.1, 16 | |
%conv12.1 = trunc i32 %shr.1 to i16 | |
br label %if.end.1 | |
if.end.1: ; preds = %if.then.1, %if.else.1 | |
%storemerge.1 = phi i16 [ %conv28.1, %if.else.1 ], [ %conv12.1, %if.then.1 ] | |
store i16 %storemerge.1, ptr %arrayidx.1, align 2 | |
%arrayidx.2 = getelementptr inbounds i16, ptr %dct, i64 2 | |
%8 = load i16, ptr %arrayidx.2, align 2 | |
%conv.2 = sext i16 %8 to i32 | |
%cmp1.2 = icmp sgt i16 %8, 0 | |
%arrayidx4.2 = getelementptr inbounds i16, ptr %bias, i64 2 | |
%9 = load i16, ptr %arrayidx4.2, align 2 | |
%conv5.2 = zext i16 %9 to i32 | |
%arrayidx10.2 = getelementptr inbounds i16, ptr %mf, i64 2 | |
%10 = load i16, ptr %arrayidx10.2, align 2 | |
%conv11.2 = zext i16 %10 to i32 | |
br i1 %cmp1.2, label %if.then.2, label %if.else.2 | |
if.else.2: ; preds = %if.end.1 | |
%add21.2 = sub nsw i32 %conv5.2, %conv.2 | |
%mul25.2 = mul i32 %add21.2, %conv11.2 | |
%shr26.2 = lshr i32 %mul25.2, 16 | |
%11 = trunc i32 %shr26.2 to i16 | |
%conv28.2 = sub i16 0, %11 | |
br label %if.end.2 | |
if.then.2: ; preds = %if.end.1 | |
%add.2 = add nuw nsw i32 %conv5.2, %conv.2 | |
%mul.2 = mul i32 %add.2, %conv11.2 | |
%shr.2 = lshr i32 %mul.2, 16 | |
%conv12.2 = trunc i32 %shr.2 to i16 | |
br label %if.end.2 | |
if.end.2: ; preds = %if.then.2, %if.else.2 | |
%storemerge.2 = phi i16 [ %conv28.2, %if.else.2 ], [ %conv12.2, %if.then.2 ] | |
store i16 %storemerge.2, ptr %arrayidx.2, align 2 | |
%arrayidx.3 = getelementptr inbounds i16, ptr %dct, i64 3 | |
%12 = load i16, ptr %arrayidx.3, align 2 | |
%conv.3 = sext i16 %12 to i32 | |
%cmp1.3 = icmp sgt i16 %12, 0 | |
%arrayidx4.3 = getelementptr inbounds i16, ptr %bias, i64 3 | |
%13 = load i16, ptr %arrayidx4.3, align 2 | |
%conv5.3 = zext i16 %13 to i32 | |
%arrayidx10.3 = getelementptr inbounds i16, ptr %mf, i64 3 | |
%14 = load i16, ptr %arrayidx10.3, align 2 | |
%conv11.3 = zext i16 %14 to i32 | |
br i1 %cmp1.3, label %if.then.3, label %if.else.3 | |
if.else.3: ; preds = %if.end.2 | |
%add21.3 = sub nsw i32 %conv5.3, %conv.3 | |
%mul25.3 = mul i32 %add21.3, %conv11.3 | |
%shr26.3 = lshr i32 %mul25.3, 16 | |
%15 = trunc i32 %shr26.3 to i16 | |
%conv28.3 = sub i16 0, %15 | |
br label %if.end.3 | |
if.then.3: ; preds = %if.end.2 | |
%add.3 = add nuw nsw i32 %conv5.3, %conv.3 | |
%mul.3 = mul i32 %add.3, %conv11.3 | |
%shr.3 = lshr i32 %mul.3, 16 | |
%conv12.3 = trunc i32 %shr.3 to i16 | |
br label %if.end.3 | |
if.end.3: ; preds = %if.then.3, %if.else.3 | |
%storemerge.3 = phi i16 [ %conv28.3, %if.else.3 ], [ %conv12.3, %if.then.3 ] | |
store i16 %storemerge.3, ptr %arrayidx.3, align 2 | |
%arrayidx.4 = getelementptr inbounds i16, ptr %dct, i64 4 | |
%16 = load i16, ptr %arrayidx.4, align 2 | |
%conv.4 = sext i16 %16 to i32 | |
%cmp1.4 = icmp sgt i16 %16, 0 | |
%arrayidx4.4 = getelementptr inbounds i16, ptr %bias, i64 4 | |
%17 = load i16, ptr %arrayidx4.4, align 2 | |
%conv5.4 = zext i16 %17 to i32 | |
%arrayidx10.4 = getelementptr inbounds i16, ptr %mf, i64 4 | |
%18 = load i16, ptr %arrayidx10.4, align 2 | |
%conv11.4 = zext i16 %18 to i32 | |
br i1 %cmp1.4, label %if.then.4, label %if.else.4 | |
if.else.4: ; preds = %if.end.3 | |
%add21.4 = sub nsw i32 %conv5.4, %conv.4 | |
%mul25.4 = mul i32 %add21.4, %conv11.4 | |
%shr26.4 = lshr i32 %mul25.4, 16 | |
%19 = trunc i32 %shr26.4 to i16 | |
%conv28.4 = sub i16 0, %19 | |
br label %if.end.4 | |
if.then.4: ; preds = %if.end.3 | |
%add.4 = add nuw nsw i32 %conv5.4, %conv.4 | |
%mul.4 = mul i32 %add.4, %conv11.4 | |
%shr.4 = lshr i32 %mul.4, 16 | |
%conv12.4 = trunc i32 %shr.4 to i16 | |
br label %if.end.4 | |
if.end.4: ; preds = %if.then.4, %if.else.4 | |
%storemerge.4 = phi i16 [ %conv28.4, %if.else.4 ], [ %conv12.4, %if.then.4 ] | |
store i16 %storemerge.4, ptr %arrayidx.4, align 2 | |
%arrayidx.5 = getelementptr inbounds i16, ptr %dct, i64 5 | |
%20 = load i16, ptr %arrayidx.5, align 2 | |
%conv.5 = sext i16 %20 to i32 | |
%cmp1.5 = icmp sgt i16 %20, 0 | |
%arrayidx4.5 = getelementptr inbounds i16, ptr %bias, i64 5 | |
%21 = load i16, ptr %arrayidx4.5, align 2 | |
%conv5.5 = zext i16 %21 to i32 | |
%arrayidx10.5 = getelementptr inbounds i16, ptr %mf, i64 5 | |
%22 = load i16, ptr %arrayidx10.5, align 2 | |
%conv11.5 = zext i16 %22 to i32 | |
br i1 %cmp1.5, label %if.then.5, label %if.else.5 | |
if.else.5: ; preds = %if.end.4 | |
%add21.5 = sub nsw i32 %conv5.5, %conv.5 | |
%mul25.5 = mul i32 %add21.5, %conv11.5 | |
%shr26.5 = lshr i32 %mul25.5, 16 | |
%23 = trunc i32 %shr26.5 to i16 | |
%conv28.5 = sub i16 0, %23 | |
br label %if.end.5 | |
if.then.5: ; preds = %if.end.4 | |
%add.5 = add nuw nsw i32 %conv5.5, %conv.5 | |
%mul.5 = mul i32 %add.5, %conv11.5 | |
%shr.5 = lshr i32 %mul.5, 16 | |
%conv12.5 = trunc i32 %shr.5 to i16 | |
br label %if.end.5 | |
if.end.5: ; preds = %if.then.5, %if.else.5 | |
%storemerge.5 = phi i16 [ %conv28.5, %if.else.5 ], [ %conv12.5, %if.then.5 ] | |
store i16 %storemerge.5, ptr %arrayidx.5, align 2 | |
%arrayidx.6 = getelementptr inbounds i16, ptr %dct, i64 6 | |
%24 = load i16, ptr %arrayidx.6, align 2 | |
%conv.6 = sext i16 %24 to i32 | |
%cmp1.6 = icmp sgt i16 %24, 0 | |
%arrayidx4.6 = getelementptr inbounds i16, ptr %bias, i64 6 | |
%25 = load i16, ptr %arrayidx4.6, align 2 | |
%conv5.6 = zext i16 %25 to i32 | |
%arrayidx10.6 = getelementptr inbounds i16, ptr %mf, i64 6 | |
%26 = load i16, ptr %arrayidx10.6, align 2 | |
%conv11.6 = zext i16 %26 to i32 | |
br i1 %cmp1.6, label %if.then.6, label %if.else.6 | |
if.else.6: ; preds = %if.end.5 | |
%add21.6 = sub nsw i32 %conv5.6, %conv.6 | |
%mul25.6 = mul i32 %add21.6, %conv11.6 | |
%shr26.6 = lshr i32 %mul25.6, 16 | |
%27 = trunc i32 %shr26.6 to i16 | |
%conv28.6 = sub i16 0, %27 | |
br label %if.end.6 | |
if.then.6: ; preds = %if.end.5 | |
%add.6 = add nuw nsw i32 %conv5.6, %conv.6 | |
%mul.6 = mul i32 %add.6, %conv11.6 | |
%shr.6 = lshr i32 %mul.6, 16 | |
%conv12.6 = trunc i32 %shr.6 to i16 | |
br label %if.end.6 | |
if.end.6: ; preds = %if.then.6, %if.else.6 | |
%storemerge.6 = phi i16 [ %conv28.6, %if.else.6 ], [ %conv12.6, %if.then.6 ] | |
store i16 %storemerge.6, ptr %arrayidx.6, align 2 | |
%arrayidx.7 = getelementptr inbounds i16, ptr %dct, i64 7 | |
%28 = load i16, ptr %arrayidx.7, align 2 | |
%conv.7 = sext i16 %28 to i32 | |
%cmp1.7 = icmp sgt i16 %28, 0 | |
%arrayidx4.7 = getelementptr inbounds i16, ptr %bias, i64 7 | |
%29 = load i16, ptr %arrayidx4.7, align 2 | |
%conv5.7 = zext i16 %29 to i32 | |
%arrayidx10.7 = getelementptr inbounds i16, ptr %mf, i64 7 | |
%30 = load i16, ptr %arrayidx10.7, align 2 | |
%conv11.7 = zext i16 %30 to i32 | |
br i1 %cmp1.7, label %if.then.7, label %if.else.7 | |
if.else.7: ; preds = %if.end.6 | |
%add21.7 = sub nsw i32 %conv5.7, %conv.7 | |
%mul25.7 = mul i32 %add21.7, %conv11.7 | |
%shr26.7 = lshr i32 %mul25.7, 16 | |
%31 = trunc i32 %shr26.7 to i16 | |
%conv28.7 = sub i16 0, %31 | |
br label %if.end.7 | |
if.then.7: ; preds = %if.end.6 | |
%add.7 = add nuw nsw i32 %conv5.7, %conv.7 | |
%mul.7 = mul i32 %add.7, %conv11.7 | |
%shr.7 = lshr i32 %mul.7, 16 | |
%conv12.7 = trunc i32 %shr.7 to i16 | |
br label %if.end.7 | |
if.end.7: ; preds = %if.then.7, %if.else.7 | |
%storemerge.7 = phi i16 [ %conv28.7, %if.else.7 ], [ %conv12.7, %if.then.7 ] | |
store i16 %storemerge.7, ptr %arrayidx.7, align 2 | |
%arrayidx.8 = getelementptr inbounds i16, ptr %dct, i64 8 | |
%32 = load i16, ptr %arrayidx.8, align 2 | |
%conv.8 = sext i16 %32 to i32 | |
%cmp1.8 = icmp sgt i16 %32, 0 | |
%arrayidx4.8 = getelementptr inbounds i16, ptr %bias, i64 8 | |
%33 = load i16, ptr %arrayidx4.8, align 2 | |
%conv5.8 = zext i16 %33 to i32 | |
%arrayidx10.8 = getelementptr inbounds i16, ptr %mf, i64 8 | |
%34 = load i16, ptr %arrayidx10.8, align 2 | |
%conv11.8 = zext i16 %34 to i32 | |
br i1 %cmp1.8, label %if.then.8, label %if.else.8 | |
if.else.8: ; preds = %if.end.7 | |
%add21.8 = sub nsw i32 %conv5.8, %conv.8 | |
%mul25.8 = mul i32 %add21.8, %conv11.8 | |
%shr26.8 = lshr i32 %mul25.8, 16 | |
%35 = trunc i32 %shr26.8 to i16 | |
%conv28.8 = sub i16 0, %35 | |
br label %if.end.8 | |
if.then.8: ; preds = %if.end.7 | |
%add.8 = add nuw nsw i32 %conv5.8, %conv.8 | |
%mul.8 = mul i32 %add.8, %conv11.8 | |
%shr.8 = lshr i32 %mul.8, 16 | |
%conv12.8 = trunc i32 %shr.8 to i16 | |
br label %if.end.8 | |
if.end.8: ; preds = %if.then.8, %if.else.8 | |
%storemerge.8 = phi i16 [ %conv28.8, %if.else.8 ], [ %conv12.8, %if.then.8 ] | |
store i16 %storemerge.8, ptr %arrayidx.8, align 2 | |
%arrayidx.9 = getelementptr inbounds i16, ptr %dct, i64 9 | |
%36 = load i16, ptr %arrayidx.9, align 2 | |
%conv.9 = sext i16 %36 to i32 | |
%cmp1.9 = icmp sgt i16 %36, 0 | |
%arrayidx4.9 = getelementptr inbounds i16, ptr %bias, i64 9 | |
%37 = load i16, ptr %arrayidx4.9, align 2 | |
%conv5.9 = zext i16 %37 to i32 | |
%arrayidx10.9 = getelementptr inbounds i16, ptr %mf, i64 9 | |
%38 = load i16, ptr %arrayidx10.9, align 2 | |
%conv11.9 = zext i16 %38 to i32 | |
br i1 %cmp1.9, label %if.then.9, label %if.else.9 | |
if.else.9: ; preds = %if.end.8 | |
%add21.9 = sub nsw i32 %conv5.9, %conv.9 | |
%mul25.9 = mul i32 %add21.9, %conv11.9 | |
%shr26.9 = lshr i32 %mul25.9, 16 | |
%39 = trunc i32 %shr26.9 to i16 | |
%conv28.9 = sub i16 0, %39 | |
br label %if.end.9 | |
if.then.9: ; preds = %if.end.8 | |
%add.9 = add nuw nsw i32 %conv5.9, %conv.9 | |
%mul.9 = mul i32 %add.9, %conv11.9 | |
%shr.9 = lshr i32 %mul.9, 16 | |
%conv12.9 = trunc i32 %shr.9 to i16 | |
br label %if.end.9 | |
if.end.9: ; preds = %if.then.9, %if.else.9 | |
%storemerge.9 = phi i16 [ %conv28.9, %if.else.9 ], [ %conv12.9, %if.then.9 ] | |
store i16 %storemerge.9, ptr %arrayidx.9, align 2 | |
%arrayidx.10 = getelementptr inbounds i16, ptr %dct, i64 10 | |
%40 = load i16, ptr %arrayidx.10, align 2 | |
%conv.10 = sext i16 %40 to i32 | |
%cmp1.10 = icmp sgt i16 %40, 0 | |
%arrayidx4.10 = getelementptr inbounds i16, ptr %bias, i64 10 | |
%41 = load i16, ptr %arrayidx4.10, align 2 | |
%conv5.10 = zext i16 %41 to i32 | |
%arrayidx10.10 = getelementptr inbounds i16, ptr %mf, i64 10 | |
%42 = load i16, ptr %arrayidx10.10, align 2 | |
%conv11.10 = zext i16 %42 to i32 | |
br i1 %cmp1.10, label %if.then.10, label %if.else.10 | |
if.else.10: ; preds = %if.end.9 | |
%add21.10 = sub nsw i32 %conv5.10, %conv.10 | |
%mul25.10 = mul i32 %add21.10, %conv11.10 | |
%shr26.10 = lshr i32 %mul25.10, 16 | |
%43 = trunc i32 %shr26.10 to i16 | |
%conv28.10 = sub i16 0, %43 | |
br label %if.end.10 | |
if.then.10: ; preds = %if.end.9 | |
%add.10 = add nuw nsw i32 %conv5.10, %conv.10 | |
%mul.10 = mul i32 %add.10, %conv11.10 | |
%shr.10 = lshr i32 %mul.10, 16 | |
%conv12.10 = trunc i32 %shr.10 to i16 | |
br label %if.end.10 | |
if.end.10: ; preds = %if.then.10, %if.else.10 | |
%storemerge.10 = phi i16 [ %conv28.10, %if.else.10 ], [ %conv12.10, %if.then.10 ] | |
store i16 %storemerge.10, ptr %arrayidx.10, align 2 | |
%arrayidx.11 = getelementptr inbounds i16, ptr %dct, i64 11 | |
%44 = load i16, ptr %arrayidx.11, align 2 | |
%conv.11 = sext i16 %44 to i32 | |
%cmp1.11 = icmp sgt i16 %44, 0 | |
%arrayidx4.11 = getelementptr inbounds i16, ptr %bias, i64 11 | |
%45 = load i16, ptr %arrayidx4.11, align 2 | |
%conv5.11 = zext i16 %45 to i32 | |
%arrayidx10.11 = getelementptr inbounds i16, ptr %mf, i64 11 | |
%46 = load i16, ptr %arrayidx10.11, align 2 | |
%conv11.11 = zext i16 %46 to i32 | |
br i1 %cmp1.11, label %if.then.11, label %if.else.11 | |
if.else.11: ; preds = %if.end.10 | |
%add21.11 = sub nsw i32 %conv5.11, %conv.11 | |
%mul25.11 = mul i32 %add21.11, %conv11.11 | |
%shr26.11 = lshr i32 %mul25.11, 16 | |
%47 = trunc i32 %shr26.11 to i16 | |
%conv28.11 = sub i16 0, %47 | |
br label %if.end.11 | |
if.then.11: ; preds = %if.end.10 | |
%add.11 = add nuw nsw i32 %conv5.11, %conv.11 | |
%mul.11 = mul i32 %add.11, %conv11.11 | |
%shr.11 = lshr i32 %mul.11, 16 | |
%conv12.11 = trunc i32 %shr.11 to i16 | |
br label %if.end.11 | |
if.end.11: ; preds = %if.then.11, %if.else.11 | |
%storemerge.11 = phi i16 [ %conv28.11, %if.else.11 ], [ %conv12.11, %if.then.11 ] | |
store i16 %storemerge.11, ptr %arrayidx.11, align 2 | |
%arrayidx.12 = getelementptr inbounds i16, ptr %dct, i64 12 | |
%48 = load i16, ptr %arrayidx.12, align 2 | |
%conv.12 = sext i16 %48 to i32 | |
%cmp1.12 = icmp sgt i16 %48, 0 | |
%arrayidx4.12 = getelementptr inbounds i16, ptr %bias, i64 12 | |
%49 = load i16, ptr %arrayidx4.12, align 2 | |
%conv5.12 = zext i16 %49 to i32 | |
%arrayidx10.12 = getelementptr inbounds i16, ptr %mf, i64 12 | |
%50 = load i16, ptr %arrayidx10.12, align 2 | |
%conv11.12 = zext i16 %50 to i32 | |
br i1 %cmp1.12, label %if.then.12, label %if.else.12 | |
if.else.12: ; preds = %if.end.11 | |
%add21.12 = sub nsw i32 %conv5.12, %conv.12 | |
%mul25.12 = mul i32 %add21.12, %conv11.12 | |
%shr26.12 = lshr i32 %mul25.12, 16 | |
%51 = trunc i32 %shr26.12 to i16 | |
%conv28.12 = sub i16 0, %51 | |
br label %if.end.12 | |
if.then.12: ; preds = %if.end.11 | |
%add.12 = add nuw nsw i32 %conv5.12, %conv.12 | |
%mul.12 = mul i32 %add.12, %conv11.12 | |
%shr.12 = lshr i32 %mul.12, 16 | |
%conv12.12 = trunc i32 %shr.12 to i16 | |
br label %if.end.12 | |
if.end.12: ; preds = %if.then.12, %if.else.12 | |
%storemerge.12 = phi i16 [ %conv28.12, %if.else.12 ], [ %conv12.12, %if.then.12 ] | |
store i16 %storemerge.12, ptr %arrayidx.12, align 2 | |
%arrayidx.13 = getelementptr inbounds i16, ptr %dct, i64 13 | |
%52 = load i16, ptr %arrayidx.13, align 2 | |
%conv.13 = sext i16 %52 to i32 | |
%cmp1.13 = icmp sgt i16 %52, 0 | |
%arrayidx4.13 = getelementptr inbounds i16, ptr %bias, i64 13 | |
%53 = load i16, ptr %arrayidx4.13, align 2 | |
%conv5.13 = zext i16 %53 to i32 | |
%arrayidx10.13 = getelementptr inbounds i16, ptr %mf, i64 13 | |
%54 = load i16, ptr %arrayidx10.13, align 2 | |
%conv11.13 = zext i16 %54 to i32 | |
br i1 %cmp1.13, label %if.then.13, label %if.else.13 | |
if.else.13: ; preds = %if.end.12 | |
%add21.13 = sub nsw i32 %conv5.13, %conv.13 | |
%mul25.13 = mul i32 %add21.13, %conv11.13 | |
%shr26.13 = lshr i32 %mul25.13, 16 | |
%55 = trunc i32 %shr26.13 to i16 | |
%conv28.13 = sub i16 0, %55 | |
br label %if.end.13 | |
if.then.13: ; preds = %if.end.12 | |
%add.13 = add nuw nsw i32 %conv5.13, %conv.13 | |
%mul.13 = mul i32 %add.13, %conv11.13 | |
%shr.13 = lshr i32 %mul.13, 16 | |
%conv12.13 = trunc i32 %shr.13 to i16 | |
br label %if.end.13 | |
if.end.13: ; preds = %if.then.13, %if.else.13 | |
%storemerge.13 = phi i16 [ %conv28.13, %if.else.13 ], [ %conv12.13, %if.then.13 ] | |
store i16 %storemerge.13, ptr %arrayidx.13, align 2 | |
%arrayidx.14 = getelementptr inbounds i16, ptr %dct, i64 14 | |
%56 = load i16, ptr %arrayidx.14, align 2 | |
%conv.14 = sext i16 %56 to i32 | |
%cmp1.14 = icmp sgt i16 %56, 0 | |
%arrayidx4.14 = getelementptr inbounds i16, ptr %bias, i64 14 | |
%57 = load i16, ptr %arrayidx4.14, align 2 | |
%conv5.14 = zext i16 %57 to i32 | |
%arrayidx10.14 = getelementptr inbounds i16, ptr %mf, i64 14 | |
%58 = load i16, ptr %arrayidx10.14, align 2 | |
%conv11.14 = zext i16 %58 to i32 | |
br i1 %cmp1.14, label %if.then.14, label %if.else.14 | |
if.else.14: ; preds = %if.end.13 | |
%add21.14 = sub nsw i32 %conv5.14, %conv.14 | |
%mul25.14 = mul i32 %add21.14, %conv11.14 | |
%shr26.14 = lshr i32 %mul25.14, 16 | |
%59 = trunc i32 %shr26.14 to i16 | |
%conv28.14 = sub i16 0, %59 | |
br label %if.end.14 | |
if.then.14: ; preds = %if.end.13 | |
%add.14 = add nuw nsw i32 %conv5.14, %conv.14 | |
%mul.14 = mul i32 %add.14, %conv11.14 | |
%shr.14 = lshr i32 %mul.14, 16 | |
%conv12.14 = trunc i32 %shr.14 to i16 | |
br label %if.end.14 | |
if.end.14: ; preds = %if.then.14, %if.else.14 | |
%storemerge.14 = phi i16 [ %conv28.14, %if.else.14 ], [ %conv12.14, %if.then.14 ] | |
store i16 %storemerge.14, ptr %arrayidx.14, align 2 | |
%arrayidx.15 = getelementptr inbounds i16, ptr %dct, i64 15 | |
%60 = load i16, ptr %arrayidx.15, align 2 | |
%conv.15 = sext i16 %60 to i32 | |
%cmp1.15 = icmp sgt i16 %60, 0 | |
%arrayidx4.15 = getelementptr inbounds i16, ptr %bias, i64 15 | |
%61 = load i16, ptr %arrayidx4.15, align 2 | |
%conv5.15 = zext i16 %61 to i32 | |
%arrayidx10.15 = getelementptr inbounds i16, ptr %mf, i64 15 | |
%62 = load i16, ptr %arrayidx10.15, align 2 | |
%conv11.15 = zext i16 %62 to i32 | |
br i1 %cmp1.15, label %if.then.15, label %if.else.15 | |
if.else.15: ; preds = %if.end.14 | |
%add21.15 = sub nsw i32 %conv5.15, %conv.15 | |
%mul25.15 = mul i32 %add21.15, %conv11.15 | |
%shr26.15 = lshr i32 %mul25.15, 16 | |
%63 = trunc i32 %shr26.15 to i16 | |
%conv28.15 = sub i16 0, %63 | |
br label %if.end.15 | |
if.then.15: ; preds = %if.end.14 | |
%add.15 = add nuw nsw i32 %conv5.15, %conv.15 | |
%mul.15 = mul i32 %add.15, %conv11.15 | |
%shr.15 = lshr i32 %mul.15, 16 | |
%conv12.15 = trunc i32 %shr.15 to i16 | |
br label %if.end.15 | |
if.end.15: ; preds = %if.then.15, %if.else.15 | |
%storemerge.15 = phi i16 [ %conv28.15, %if.else.15 ], [ %conv12.15, %if.then.15 ] | |
%or.123 = or i16 %storemerge, %storemerge.1 | |
%or.224 = or i16 %or.123, %storemerge.2 | |
%or.325 = or i16 %or.224, %storemerge.3 | |
%or.426 = or i16 %or.325, %storemerge.4 | |
%or.527 = or i16 %or.426, %storemerge.5 | |
%or.628 = or i16 %or.527, %storemerge.6 | |
%or.729 = or i16 %or.628, %storemerge.7 | |
%or.830 = or i16 %or.729, %storemerge.8 | |
%or.931 = or i16 %or.830, %storemerge.9 | |
%or.1032 = or i16 %or.931, %storemerge.10 | |
%or.1133 = or i16 %or.1032, %storemerge.11 | |
%or.1234 = or i16 %or.1133, %storemerge.12 | |
%or.1335 = or i16 %or.1234, %storemerge.13 | |
%or.1436 = or i16 %or.1335, %storemerge.14 | |
store i16 %storemerge.15, ptr %arrayidx.15, align 2 | |
%or.1537 = or i16 %or.1436, %storemerge.15 | |
%tobool = icmp ne i16 %or.1537, 0 | |
%lnot.ext = zext i1 %tobool to i32 | |
ret i32 %lnot.ext | |
} | |
attributes #0 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) uwtable "frame-pointer"="non-leaf" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+fp-armv8,+neon,+v8a,-fmv" } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment