Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change.

This update was done with the following bash script:

  find test/Transforms -name "*.ll" | \
  while read NAME; do
    echo "$NAME"
    if ! grep -q "^; *RUN: *llc" $NAME; then
      TEMP=`mktemp -t temp`
      cp $NAME $TEMP
      sed -n "s/^define [^@]*@\([A-Za-z0-9_]*\)(.*$/\1/p" < $NAME | \
      while read FUNC; do
        sed -i '' "s/;\(.*\)\([A-Za-z0-9_]*\):\( *\)@$FUNC\([( ]*\)\$/;\1\2-LABEL:\3@$FUNC(/g" $TEMP
      done
      mv $TEMP $NAME
    fi
  done


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186268 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Stephen Lin 2013-07-14 01:42:54 +00:00
parent 82e539d037
commit 39f4e8d9cc
444 changed files with 2477 additions and 2477 deletions

View File

@ -11,6 +11,6 @@ entry:
%tobool21 = icmp ne %"struct.btSoftBody"* %n2, null
%cond22 = zext i1 %tobool21 to i32
ret void
; CHECK: @test1
; CHECK-LABEL: @test1(
}

View File

@ -7,8 +7,8 @@ target triple = "x86_64-unknown-linux-gnu"
define void @test1(double* noalias %out, double* noalias %in1, double* noalias %in2) nounwind uwtable {
entry:
br label %for.body
; CHECK: @test1
; CHECK-UNRL: @test1
; CHECK-LABEL: @test1(
; CHECK-UNRL-LABEL: @test1(
for.body: ; preds = %for.body, %entry
%indvars.iv = phi i64 [ 0, %entry ], [ %indvars.iv.next, %for.body ]

View File

@ -46,7 +46,7 @@ if.end10: ; preds = %entry
return: ; preds = %entry
ret void
; CHECK: @ptoa
; CHECK-LABEL: @ptoa(
}
declare noalias i8* @malloc() nounwind

View File

@ -77,7 +77,7 @@ entry:
%and390 = shl i8 %conv3898, 6
store i8 %and390, i8* %incdec.ptr387, align 1
unreachable
; CHECK: @gsm_encode
; CHECK-LABEL: @gsm_encode(
}
declare void @Gsm_Coder(%struct.gsm_state.2.8.14.15.16.17.19.22.23.25.26.28.29.31.32.33.35.36.37.38.40.41.42.44.45.47.48.50.52.53.54.56.57.58.59.60.61.62.63.66.73.83.84.89.90.91.92.93.94.95.96.99.100.101.102.103.104.106.107.114.116.121.122.129.130.135.136.137.138.139.140.141.142.143.144.147.148.149.158.159.160.161.164.165.166.167.168.169.172.179.181.182.183.188.195.200.201.202.203.204.205.208.209.210.212.213.214.215.222.223.225.226.230.231.232.233.234.235.236.237.238.239.240.241.242.243.244.352*, i16*, i16*, i16*, i16*, i16*, i16*, i16*)

View File

@ -162,7 +162,7 @@ entry:
%conv365 = trunc i32 %or364 to i8
store i8 %conv365, i8* %incdec.ptr350, align 1
unreachable
; CHECK: @gsm_encode
; CHECK-LABEL: @gsm_encode(
}
declare void @Gsm_Coder(%struct.gsm_state.2.8.39.44.45.55.56.57.58.59.62.63.64.65.74.75.76.77.80.87.92.93.94.95.96.97.110.111.112.113.114.128.130.135.136.137.138.139.140.141.142.143.144.145.148.149.150.151.152.169.170.177.178.179.184.185.186.187.188.201.208.209.219.220.221.223.224.225.230.231.232.233.235.236.237.238.245.246.248.249.272.274.279.280.281.282.283.286.293.298.299.314.315.316.317.318.319.320.321.322.323.324.325.326.327.328.329.330.331.332.333.334.335.336.337.338.339.340.341.342.343.344.345.346.347.348.349.350.351.352.353.565*, i16*, i16*, i16*, i16*, i16*, i16*, i16*)

View File

@ -18,7 +18,7 @@ define <4 x float> @test7(<4 x float> %A1, <4 x float> %B1, double %C1, double %
%R = fmul <4 x float> %Y1, %Y2
ret <4 x float> %R
; CHECK: @test7
; CHECK-LABEL: @test7(
; CHECK-NOT: <8 x float>
; CHECK: ret <4 x float>
}

View File

@ -16,7 +16,7 @@ define double @test1(double %A1, double %A2, double %B1, double %B2, double %C1,
%Z2 = fadd double %Y2, %B2
%R = fmul double %Z1, %Z2
ret double %R
; CHECK: @test1
; CHECK-LABEL: @test1(
; CHECK: ret double %R
}
@ -30,7 +30,7 @@ define double @test1a(double %A1, double %A2, double %B1, double %B2, double %C1
%Z2 = fadd double %Y2, %B2
%R = fmul double %Z1, %Z2
ret double %R
; CHECK: @test1a
; CHECK-LABEL: @test1a(
; CHECK: ret double %R
}
@ -44,7 +44,7 @@ define double @test2(double %A1, double %A2, double %B1, double %B2) {
%Z2 = fadd double %Y2, %B2
%R = fmul double %Z1, %Z2
ret double %R
; CHECK: @test2
; CHECK-LABEL: @test2(
; CHECK: ret double %R
}
@ -58,7 +58,7 @@ define double @test3(double %A1, double %A2, double %B1, double %B2, i32 %P) {
%Z2 = fadd double %Y2, %B2
%R = fmul double %Z1, %Z2
ret double %R
; CHECK: @test3
; CHECK-LABEL: @test3(
; CHECK: ret double %R
}
@ -73,7 +73,7 @@ define double @test4(double %A1, double %A2, double %B1, double %B2, i32 %P) {
%Z2 = fadd double %Y2, %B2
%R = fmul double %Z1, %Z2
ret double %R
; CHECK: @test4
; CHECK-LABEL: @test4(
; CHECK: ret double %R
}

View File

@ -16,7 +16,7 @@ entry:
%arrayidx5 = getelementptr inbounds double* %c, i64 1
store double %mul5, double* %arrayidx5, align 8
ret void
; CHECK: @test1
; CHECK-LABEL: @test1(
; CHECK: %i0.v.i0 = bitcast double* %a to <2 x double>*
; CHECK: %i1.v.i0 = bitcast double* %b to <2 x double>*
; CHECK: %i0 = load <2 x double>* %i0.v.i0, align 8

View File

@ -11,7 +11,7 @@ define double @test1(double %A1, double %A2, double %B1, double %B2) {
%Z2 = fadd double %Y2, %B2
%R = fmul double %Z1, %Z2
ret double %R
; CHECK: @test1
; CHECK-LABEL: @test1(
; CHECK: fsub <2 x double>
; CHECK: fmul <2 x double>
; CHECK: fadd <2 x double>
@ -38,7 +38,7 @@ define double @test1a(double %A1, double %A2, double %B1, double %B2) {
%S2 = fadd double %W2, %Q2
%R = fmul double %S1, %S2
ret double %R
; CHECK: @test1a
; CHECK-LABEL: @test1a(
; CHECK: %X1.v.i1.1 = insertelement <2 x double> undef, double %B1, i32 0
; CHECK: %X1.v.i1.2 = insertelement <2 x double> %X1.v.i1.1, double %B2, i32 1
; CHECK: %X1.v.i0.1 = insertelement <2 x double> undef, double %A1, i32 0
@ -66,7 +66,7 @@ define double @test2(double %A1, double %A2, double %B1, double %B2) {
%Z2 = fadd double %Y1, %B2
%R = fmul double %Z1, %Z2
ret double %R
; CHECK: @test2
; CHECK-LABEL: @test2(
; CHECK: insertelement
; CHECK: insertelement
; CHECK: insertelement
@ -88,7 +88,7 @@ define double @test4(double %A1, double %A2, double %B1, double %B2) {
%W2 = fadd double %Y1, %Z2
%R = fmul double %Z1, %Z2
ret double %R
; CHECK: @test4
; CHECK-LABEL: @test4(
; CHECK: insertelement
; CHECK: insertelement
; CHECK: insertelement
@ -113,7 +113,7 @@ define <8 x i8> @test6(<8 x i8> %A1, <8 x i8> %A2, <8 x i8> %B1, <8 x i8> %B2) {
%Q2 = shufflevector <8 x i8> %Z2, <8 x i8> %Z2, <8 x i32> <i32 6, i32 7, i32 0, i32 1, i32 2, i32 4, i32 4, i32 1>
%R = mul <8 x i8> %Q1, %Q2
ret <8 x i8> %R
; CHECK: @test6
; CHECK-LABEL: @test6(
; CHECK-NOT: sub <16 x i8>
; CHECK: ret <8 x i8>
}

View File

@ -7,6 +7,6 @@ entry:
%0 = bitcast <2 x i64> undef to i128
%1 = bitcast <2 x i64> undef to i128
ret void
; CHECK: @main
; CHECK-LABEL: @main(
}

View File

@ -105,7 +105,7 @@ go:
br i1 %or.cond, label %done, label %go
done:
ret void
; CHECK: @test1
; CHECK-LABEL: @test1(
; CHECK: go:
; CHECK: %conv.v.i0.1 = insertelement <2 x i32> undef, i32 %n.0, i32 0
; FIXME: When tree pruning is deterministic, include the entire output.

View File

@ -22,7 +22,7 @@ entry:
%add15 = fadd double %mul13, %i5
%mul16 = fmul double %add11, %add15
ret double %mul16
; CHECK: @test1
; CHECK-LABEL: @test1(
; CHECK: %i0.v.i0 = bitcast double* %a to <2 x double>*
; CHECK: %i1.v.i0 = bitcast double* %b to <2 x double>*
; CHECK: %i2.v.i0 = bitcast double* %c to <2 x double>*

View File

@ -7,8 +7,8 @@ target triple = "x86_64-unknown-linux-gnu"
define void @test1(double* noalias %out, double* noalias %in1, double* noalias %in2) nounwind uwtable {
entry:
br label %for.body
; CHECK: @test1
; CHECK-UNRL: @test1
; CHECK-LABEL: @test1(
; CHECK-UNRL-LABEL: @test1(
for.body: ; preds = %for.body, %entry
%indvars.iv = phi i64 [ 0, %entry ], [ %indvars.iv.next, %for.body ]

View File

@ -6,7 +6,7 @@ target triple = "x86_64-unknown-linux-gnu"
@B = common global [1024 x float] zeroinitializer, align 16
define i32 @test1() nounwind {
; CHECK: @test1
; CHECK-LABEL: @test1(
%V1 = load float* getelementptr inbounds ([1024 x float]* @A, i64 0, i64 0), align 16
%V2 = load float* getelementptr inbounds ([1024 x float]* @A, i64 0, i64 1), align 4
%V3= load float* getelementptr inbounds ([1024 x float]* @A, i64 0, i64 2), align 8

View File

@ -16,7 +16,7 @@ entry:
%arrayidx5 = getelementptr inbounds double* %c, i64 1
store double %mul5, double* %arrayidx5, align 8
ret void
; CHECK: @test1
; CHECK-LABEL: @test1(
; CHECK: !fpmath
; CHECK: ret void
}
@ -36,7 +36,7 @@ entry:
%arrayidx5 = getelementptr inbounds i64* %c, i64 1
store i64 %mul5, i64* %arrayidx5, align 8
ret void
; CHECK: @test2
; CHECK-LABEL: @test2(
; CHECK-NOT: !range
; CHECK: ret void
}

View File

@ -17,7 +17,7 @@ entry:
store i64 %v3a, i64* %a3, align 8
%r = add i64 %v2, %v3
ret i64 %r
; CHECK: @test2
; CHECK-LABEL: @test2(
; CHECK-NOT: getelementptr <2 x i64*>
}

View File

@ -9,8 +9,8 @@ define double @test1(double %A1, double %A2, double %B1, double %B2) {
%Y2 = fmul double %X2, %A2
%R = fmul double %Y1, %Y2
ret double %R
; CHECK-RD3: @test1
; CHECK-RD2: @test1
; CHECK-RD3-LABEL: @test1(
; CHECK-RD2-LABEL: @test1(
; CHECK-RD3-NOT: <2 x double>
; CHECK-RD2: <2 x double>
}

View File

@ -3,8 +3,8 @@ target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f3
; RUN: opt < %s -bb-vectorize -bb-vectorize-req-chain-depth=3 -bb-vectorize-search-limit=4 -bb-vectorize-ignore-target-info -instcombine -gvn -S | FileCheck %s -check-prefix=CHECK-SL4
define double @test1(double %A1, double %A2, double %B1, double %B2) {
; CHECK: @test1
; CHECK-SL4: @test1
; CHECK-LABEL: @test1(
; CHECK-SL4-LABEL: @test1(
; CHECK-SL4-NOT: <2 x double>
; CHECK: %X1.v.i1.1 = insertelement <2 x double> undef, double %B1, i32 0
; CHECK: %X1.v.i1.2 = insertelement <2 x double> %X1.v.i1.1, double %B2, i32 1

View File

@ -16,7 +16,7 @@ define double @test1(double %A1, double %A2, double %B1, double %B2, double %C1,
%Z2 = fadd double %Y2, %B2
%R = fmul double %Z1, %Z2
ret double %R
; CHECK: @test1
; CHECK-LABEL: @test1(
; CHECK: %X1.v.i1.1 = insertelement <2 x double> undef, double %B1, i32 0
; CHECK: %X1.v.i1.2 = insertelement <2 x double> %X1.v.i1.1, double %B2, i32 1
; CHECK: %X1.v.i0.1 = insertelement <2 x double> undef, double %A1, i32 0
@ -42,7 +42,7 @@ define double @test1a(double %A1, double %A2, double %B1, double %B2, double %C1
%Z2 = fadd double %Y2, %B2
%R = fmul double %Z1, %Z2
ret double %R
; CHECK: @test1a
; CHECK-LABEL: @test1a(
; CHECK: %X1.v.i1.1 = insertelement <2 x double> undef, double %B1, i32 0
; CHECK: %X1.v.i1.2 = insertelement <2 x double> %X1.v.i1.1, double %B2, i32 1
; CHECK: %X1.v.i0.1 = insertelement <2 x double> undef, double %A1, i32 0
@ -68,7 +68,7 @@ define double @test2(double %A1, double %A2, double %B1, double %B2) {
%Z2 = fadd double %Y2, %B2
%R = fmul double %Z1, %Z2
ret double %R
; CHECK: @test2
; CHECK-LABEL: @test2(
; CHECK: %X1.v.i1.1 = insertelement <2 x double> undef, double %B1, i32 0
; CHECK: %X1.v.i1.2 = insertelement <2 x double> %X1.v.i1.1, double %B2, i32 1
; CHECK: %X1.v.i0.1 = insertelement <2 x double> undef, double %A1, i32 0
@ -93,7 +93,7 @@ define double @test3(double %A1, double %A2, double %B1, double %B2, i32 %P) {
%Z2 = fadd double %Y2, %B2
%R = fmul double %Z1, %Z2
ret double %R
; CHECK: @test3
; CHECK-LABEL: @test3(
; CHECK: %X1.v.i1.1 = insertelement <2 x double> undef, double %B1, i32 0
; CHECK: %X1.v.i1.2 = insertelement <2 x double> %X1.v.i1.1, double %B2, i32 1
; CHECK: %X1.v.i0.1 = insertelement <2 x double> undef, double %A1, i32 0
@ -119,7 +119,7 @@ define double @test4(double %A1, double %A2, double %B1, double %B2, i32 %P) {
%Z2 = fadd double %Y2, %B2
%R = fmul double %Z1, %Z2
ret double %R
; CHECK: @test4
; CHECK-LABEL: @test4(
; CHECK-NOT: <2 x double>
; CHECK: ret double %R
}

View File

@ -27,7 +27,7 @@ entry:
%arrayidx5 = getelementptr inbounds i64* %c, i64 1
store i64 %mul5, i64* %arrayidx5, align 8
ret double %r
; CHECK: @test1
; CHECK-LABEL: @test1(
; CHECK: %i0.v.i0 = bitcast i64* %a to <2 x i64>*
; CHECK: %i1.v.i0 = bitcast i64* %b to <2 x i64>*
; CHECK: %i0 = load <2 x i64>* %i0.v.i0, align 8
@ -43,7 +43,7 @@ entry:
; CHECK: %0 = bitcast i64* %c to <2 x i64>*
; CHECK: store <2 x i64> %mul, <2 x i64>* %0, align 8
; CHECK: ret double %r
; CHECK-AO: @test1
; CHECK-AO-LABEL: @test1(
; CHECK-AO-NOT: load <2 x
}
@ -64,7 +64,7 @@ entry:
%arrayidx5 = getelementptr inbounds i64** %c, i64 1
store i64* %ptr3, i64** %arrayidx5, align 8
ret void
; CHECK: @test2
; CHECK-LABEL: @test2(
; CHECK: %i0.v.i0 = bitcast i64** %a to <2 x i64*>*
; CHECK: %i1 = load i64** %b, align 8
; CHECK: %i0 = load <2 x i64*>* %i0.v.i0, align 8
@ -78,7 +78,7 @@ entry:
; CHECK: %0 = bitcast i64** %c to <2 x i64*>*
; CHECK: store <2 x i64*> %ptr0, <2 x i64*>* %0, align 8
; CHECK: ret void
; CHECK-AO: @test2
; CHECK-AO-LABEL: @test2(
; CHECK-AO-NOT: <2 x
}
@ -108,7 +108,7 @@ entry:
%arrayidx5 = getelementptr inbounds <2 x i64*>* %c, i64 1
store <2 x i64*> %rtr3, <2 x i64*>* %arrayidx5, align 8
ret void
; CHECK: @test3
; CHECK-LABEL: @test3(
; CHECK: %i0.v.i0 = bitcast <2 x i64*>* %a to <4 x i64*>*
; CHECK: %i1 = load <2 x i64*>* %b, align 8
; CHECK: %i0 = load <4 x i64*>* %i0.v.i0, align 8
@ -128,7 +128,7 @@ entry:
; CHECK: %1 = shufflevector <2 x i64*> %rtr0, <2 x i64*> %rtr3, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
; CHECK: store <4 x i64*> %1, <4 x i64*>* %0, align 8
; CHECK: ret void
; CHECK-AO: @test3
; CHECK-AO-LABEL: @test3(
; CHECK-AO-NOT: <4 x
}

View File

@ -17,7 +17,7 @@ entry:
%arrayidx5 = getelementptr inbounds double* %c, i64 1
store double %mul5, double* %arrayidx5, align 8
ret void
; CHECK: @test1
; CHECK-LABEL: @test1(
; CHECK: %i0.v.i0 = bitcast double* %a to <2 x double>*
; CHECK: %i1.v.i0 = bitcast double* %b to <2 x double>*
; CHECK: %i0 = load <2 x double>* %i0.v.i0, align 8
@ -26,7 +26,7 @@ entry:
; CHECK: %0 = bitcast double* %c to <2 x double>*
; CHECK: store <2 x double> %mul, <2 x double>* %0, align 8
; CHECK: ret void
; CHECK-AO: @test1
; CHECK-AO-LABEL: @test1(
; CHECK-AO-NOT: <2 x double>
}
@ -49,7 +49,7 @@ entry:
%arrayidx5 = getelementptr inbounds double* %c, i64 1
store double %mul5, double* %arrayidx5, align 8
ret void
; CHECK: @test2
; CHECK-LABEL: @test2(
; CHECK: %i0f.v.i0 = bitcast float* %a to <2 x float>*
; CHECK: %i1f.v.i0 = bitcast float* %b to <2 x float>*
; CHECK: %i0f = load <2 x float>* %i0f.v.i0, align 4
@ -60,7 +60,7 @@ entry:
; CHECK: %0 = bitcast double* %c to <2 x double>*
; CHECK: store <2 x double> %mul, <2 x double>* %0, align 8
; CHECK: ret void
; CHECK-AO: @test2
; CHECK-AO-LABEL: @test2(
; CHECK-AO-NOT: <2 x double>
}
@ -81,7 +81,7 @@ entry:
%arrayidx5 = getelementptr inbounds float* %c, i64 1
store float %mul5f, float* %arrayidx5, align 4
ret void
; CHECK: @test3
; CHECK-LABEL: @test3(
; CHECK: %i0.v.i0 = bitcast double* %a to <2 x double>*
; CHECK: %i1.v.i0 = bitcast double* %b to <2 x double>*
; CHECK: %i0 = load <2 x double>* %i0.v.i0, align 8
@ -91,7 +91,7 @@ entry:
; CHECK: %0 = bitcast float* %c to <2 x float>*
; CHECK: store <2 x float> %mulf, <2 x float>* %0, align 8
; CHECK: ret void
; CHECK-AO: @test3
; CHECK-AO-LABEL: @test3(
; CHECK-AO: %i0 = load double* %a, align 8
; CHECK-AO: %i1 = load double* %b, align 8
; CHECK-AO: %arrayidx3 = getelementptr inbounds double* %a, i64 1
@ -134,9 +134,9 @@ if.then:
if.end:
ret void
; CHECK: @test4
; CHECK-LABEL: @test4(
; CHECK-NOT: <2 x double>
; CHECK-AO: @test4
; CHECK-AO-LABEL: @test4(
; CHECK-AO-NOT: <2 x double>
}
@ -155,7 +155,7 @@ entry:
store double %mul5, double* %arrayidx5, align 8
store double %mul, double* %c, align 4
ret void
; CHECK: @test5
; CHECK-LABEL: @test5(
; CHECK: %i0.v.i0 = bitcast double* %a to <2 x double>*
; CHECK: %i1.v.i0 = bitcast double* %b to <2 x double>*
; CHECK: %i0 = load <2 x double>* %i0.v.i0, align 8
@ -164,7 +164,7 @@ entry:
; CHECK: %0 = bitcast double* %c to <2 x double>*
; CHECK: store <2 x double> %mul, <2 x double>* %0, align 4
; CHECK: ret void
; CHECK-AO: @test5
; CHECK-AO-LABEL: @test5(
; CHECK-AO-NOT: <2 x double>
}

View File

@ -4,7 +4,7 @@ target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f3
; Basic depth-3 chain with select
define double @test1(double %A1, double %A2, double %B1, double %B2, i1 %C1, i1 %C2) {
; CHECK: @test1
; CHECK-LABEL: @test1(
; CHECK: %X1.v.i1.1 = insertelement <2 x double> undef, double %B1, i32 0
; CHECK: %X1.v.i1.2 = insertelement <2 x double> %X1.v.i1.1, double %B2, i32 1
; CHECK: %X1.v.i0.1 = insertelement <2 x double> undef, double %A1, i32 0
@ -30,8 +30,8 @@ define double @test1(double %A1, double %A2, double %B1, double %B2, i1 %C1, i1
; Basic depth-3 chain with select (and vect. compare)
define double @test2(double %A1, double %A2, double %B1, double %B2) {
; CHECK: @test2
; CHECK-NB: @test2
; CHECK-LABEL: @test2(
; CHECK-NB-LABEL: @test2(
; CHECK: %X1.v.i1.1 = insertelement <2 x double> undef, double %B1, i32 0
; CHECK: %X1.v.i1.2 = insertelement <2 x double> %X1.v.i1.1, double %B2, i32 1
; CHECK: %X1.v.i0.1 = insertelement <2 x double> undef, double %A1, i32 0

View File

@ -4,7 +4,7 @@ target triple = "powerpc64-unknown-linux"
; Basic depth-3 chain (target-specific type should not vectorize)
define ppc_fp128 @test7(ppc_fp128 %A1, ppc_fp128 %A2, ppc_fp128 %B1, ppc_fp128 %B2) {
; CHECK: @test7
; CHECK-LABEL: @test7(
; CHECK-NOT: <2 x ppc_fp128>
%X1 = fsub ppc_fp128 %A1, %B1
%X2 = fsub ppc_fp128 %A2, %B2

View File

@ -3,7 +3,7 @@ target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f3
; Basic depth-3 chain
define double @test1(double %A1, double %A2, double %B1, double %B2) {
; CHECK: @test1
; CHECK-LABEL: @test1(
; CHECK: %X1.v.i1.1 = insertelement <2 x double> undef, double %B1, i32 0
; CHECK: %X1.v.i1.2 = insertelement <2 x double> %X1.v.i1.1, double %B2, i32 1
; CHECK: %X1.v.i0.1 = insertelement <2 x double> undef, double %A1, i32 0
@ -27,7 +27,7 @@ define double @test1(double %A1, double %A2, double %B1, double %B2) {
; Basic depth-3 chain (last pair permuted)
define double @test2(double %A1, double %A2, double %B1, double %B2) {
; CHECK: @test2
; CHECK-LABEL: @test2(
; CHECK: %X1.v.i1.1 = insertelement <2 x double> undef, double %B1, i32 0
; CHECK: %X1.v.i1.2 = insertelement <2 x double> %X1.v.i1.1, double %B2, i32 1
; CHECK: %X1.v.i0.1 = insertelement <2 x double> undef, double %A1, i32 0
@ -53,7 +53,7 @@ define double @test2(double %A1, double %A2, double %B1, double %B2) {
; Basic depth-3 chain (last pair first splat)
define double @test3(double %A1, double %A2, double %B1, double %B2) {
; CHECK: @test3
; CHECK-LABEL: @test3(
; CHECK: %X1.v.i1.1 = insertelement <2 x double> undef, double %B1, i32 0
; CHECK: %X1.v.i1.2 = insertelement <2 x double> %X1.v.i1.1, double %B2, i32 1
; CHECK: %X1.v.i0.1 = insertelement <2 x double> undef, double %A1, i32 0
@ -78,7 +78,7 @@ define double @test3(double %A1, double %A2, double %B1, double %B2) {
; Basic depth-3 chain (last pair second splat)
define double @test4(double %A1, double %A2, double %B1, double %B2) {
; CHECK: @test4
; CHECK-LABEL: @test4(
; CHECK: %X1.v.i1.1 = insertelement <2 x double> undef, double %B1, i32 0
; CHECK: %X1.v.i1.2 = insertelement <2 x double> %X1.v.i1.1, double %B2, i32 1
; CHECK: %X1.v.i0.1 = insertelement <2 x double> undef, double %A1, i32 0
@ -103,7 +103,7 @@ define double @test4(double %A1, double %A2, double %B1, double %B2) {
; Basic depth-3 chain
define <2 x float> @test5(<2 x float> %A1, <2 x float> %A2, <2 x float> %B1, <2 x float> %B2) {
; CHECK: @test5
; CHECK-LABEL: @test5(
; CHECK: %X1.v.i1 = shufflevector <2 x float> %B1, <2 x float> %B2, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
; CHECK: %X1.v.i0 = shufflevector <2 x float> %A1, <2 x float> %A2, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
%X1 = fsub <2 x float> %A1, %B1
@ -125,7 +125,7 @@ define <2 x float> @test5(<2 x float> %A1, <2 x float> %A2, <2 x float> %B1, <2
; Basic chain with shuffles
define <8 x i8> @test6(<8 x i8> %A1, <8 x i8> %A2, <8 x i8> %B1, <8 x i8> %B2) {
; CHECK: @test6
; CHECK-LABEL: @test6(
; CHECK: %X1.v.i1 = shufflevector <8 x i8> %B1, <8 x i8> %B2, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
; CHECK: %X1.v.i0 = shufflevector <8 x i8> %A1, <8 x i8> %A2, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
%X1 = sub <8 x i8> %A1, %B1
@ -151,7 +151,7 @@ define <8 x i8> @test6(<8 x i8> %A1, <8 x i8> %A2, <8 x i8> %B1, <8 x i8> %B2) {
; Basic depth-3 chain (flipped order)
define double @test7(double %A1, double %A2, double %B1, double %B2) {
; CHECK: @test7
; CHECK-LABEL: @test7(
; CHECK: %X1.v.i1.1 = insertelement <2 x double> undef, double %B1, i32 0
; CHECK: %X1.v.i1.2 = insertelement <2 x double> %X1.v.i1.1, double %B2, i32 1
; CHECK: %X1.v.i0.1 = insertelement <2 x double> undef, double %A1, i32 0
@ -175,7 +175,7 @@ define double @test7(double %A1, double %A2, double %B1, double %B2) {
; Basic depth-3 chain (subclass data)
define i64 @test8(i64 %A1, i64 %A2, i64 %B1, i64 %B2) {
; CHECK: @test8
; CHECK-LABEL: @test8(
; CHECK: %X1.v.i1.1 = insertelement <2 x i64> undef, i64 %B1, i32 0
; CHECK: %X1.v.i1.2 = insertelement <2 x i64> %X1.v.i1.1, i64 %B2, i32 1
; CHECK: %X1.v.i0.1 = insertelement <2 x i64> undef, i64 %A1, i32 0

View File

@ -3,7 +3,7 @@ target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f3
; Basic depth-3 chain
define double @test1(double %A1, double %A2, double %A3, double %B1, double %B2, double %B3) {
; CHECK: @test1
; CHECK-LABEL: @test1(
; CHECK: %X1.v.i1.11 = insertelement <3 x double> undef, double %B1, i32 0
; CHECK: %X1.v.i1.22 = insertelement <3 x double> %X1.v.i1.11, double %B2, i32 1
; CHECK: %X1.v.i1 = insertelement <3 x double> %X1.v.i1.22, double %B3, i32 2

View File

@ -3,7 +3,7 @@
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
target triple = "x86_64-apple-darwin10.0.0"
; CHECK: @test1
; CHECK-LABEL: @test1(
; objectsize should fold to a constant, which causes the branch to fold to an
; uncond branch. Next, we fold the control flow alltogether.
; rdar://8785296

View File

@ -16,7 +16,7 @@ BB2:
br label %BB3
BB3:
; CHECK: @test1
; CHECK-LABEL: @test1(
; CHECK: %Ret = phi i32 [ 0, %BB1 ], [ 1, %BB2 ]
%Ret = phi i32 [ %Val, %BB1 ], [ 1, %BB2 ]
ret i32 %Ret
@ -31,12 +31,12 @@ entry:
bb:
ret i1 %V
; CHECK: @test2
; CHECK-LABEL: @test2(
; CHECK: ret i1 true
}
define i1 @TNAN() {
; CHECK: @TNAN
; CHECK-LABEL: @TNAN(
; CHECK: ret i1 true
%A = fcmp uno double 0x7FF8000000000000, 1.000000e+00
%B = fcmp uno double 1.230000e+02, 1.000000e+00
@ -47,7 +47,7 @@ define i1 @TNAN() {
define i128 @vector_to_int_cast() {
%A = bitcast <4 x i32> <i32 1073741824, i32 1073741824, i32 1073741824, i32 1073741824> to i128
ret i128 %A
; CHECK: @vector_to_int_cast
; CHECK-LABEL: @vector_to_int_cast(
; CHECK: ret i128 85070591750041656499021422275829170176
}

View File

@ -4,7 +4,7 @@
define <1 x i64> @test1() {
%A = bitcast i64 63 to <1 x i64>
ret <1 x i64> %A
; CHECK: @test1
; CHECK-LABEL: @test1(
; CHECK: ret <1 x i64> <i64 63>
}

View File

@ -11,7 +11,7 @@ declare double @sqrt(double)
declare double @exp2(double)
define double @T() {
; CHECK: @T
; CHECK-LABEL: @T(
; CHECK-NOT: call
; CHECK: ret
%A = call double @cos(double 0.000000e+00)
@ -29,7 +29,7 @@ define double @T() {
}
define i1 @test_sse_cvt() nounwind readnone {
; CHECK: @test_sse_cvt
; CHECK-LABEL: @test_sse_cvt(
; CHECK-NOT: call
; CHECK: ret i1 true
entry:
@ -63,7 +63,7 @@ declare i64 @llvm.x86.sse2.cvttsd2si64(<2 x double>) nounwind readnone
define double @test_intrinsic_pow() nounwind uwtable ssp {
entry:
; CHECK: @test_intrinsic_pow
; CHECK-LABEL: @test_intrinsic_pow(
; CHECK-NOT: call
%0 = call double @llvm.pow.f64(double 1.500000e+00, double 3.000000e+00)
ret double %0
@ -72,7 +72,7 @@ declare double @llvm.pow.f64(double, double) nounwind readonly
; Shouldn't fold because of -fno-builtin
define double @sin_() nounwind uwtable ssp {
; FNOBUILTIN: @sin_
; FNOBUILTIN-LABEL: @sin_(
; FNOBUILTIN: %1 = call double @sin(double 3.000000e+00)
%1 = call double @sin(double 3.000000e+00)
ret double %1
@ -80,7 +80,7 @@ define double @sin_() nounwind uwtable ssp {
; Shouldn't fold because of -fno-builtin
define double @sqrt_() nounwind uwtable ssp {
; FNOBUILTIN: @sqrt_
; FNOBUILTIN-LABEL: @sqrt_(
; FNOBUILTIN: %1 = call double @sqrt(double 3.000000e+00)
%1 = call double @sqrt(double 3.000000e+00)
ret double %1
@ -88,7 +88,7 @@ define double @sqrt_() nounwind uwtable ssp {
; Shouldn't fold because of -fno-builtin
define float @sqrtf_() nounwind uwtable ssp {
; FNOBUILTIN: @sqrtf_
; FNOBUILTIN-LABEL: @sqrtf_(
; FNOBUILTIN: %1 = call float @sqrtf(float 3.000000e+00)
%1 = call float @sqrtf(float 3.000000e+00)
ret float %1
@ -97,7 +97,7 @@ declare float @sqrtf(float)
; Shouldn't fold because of -fno-builtin
define float @sinf_() nounwind uwtable ssp {
; FNOBUILTIN: @sinf_
; FNOBUILTIN-LABEL: @sinf_(
; FNOBUILTIN: %1 = call float @sinf(float 3.000000e+00)
%1 = call float @sinf(float 3.000000e+00)
ret float %1
@ -106,7 +106,7 @@ declare float @sinf(float)
; Shouldn't fold because of -fno-builtin
define double @tan_() nounwind uwtable ssp {
; FNOBUILTIN: @tan_
; FNOBUILTIN-LABEL: @tan_(
; FNOBUILTIN: %1 = call double @tan(double 3.000000e+00)
%1 = call double @tan(double 3.000000e+00)
ret double %1
@ -114,7 +114,7 @@ define double @tan_() nounwind uwtable ssp {
; Shouldn't fold because of -fno-builtin
define double @tanh_() nounwind uwtable ssp {
; FNOBUILTIN: @tanh_
; FNOBUILTIN-LABEL: @tanh_(
; FNOBUILTIN: %1 = call double @tanh(double 3.000000e+00)
%1 = call double @tanh(double 3.000000e+00)
ret double %1
@ -123,7 +123,7 @@ declare double @tanh(double)
; Shouldn't fold because of -fno-builtin
define double @pow_() nounwind uwtable ssp {
; FNOBUILTIN: @pow_
; FNOBUILTIN-LABEL: @pow_(
; FNOBUILTIN: %1 = call double @pow(double 3.000000e+00, double 3.000000e+00)
%1 = call double @pow(double 3.000000e+00, double 3.000000e+00)
ret double %1
@ -132,7 +132,7 @@ declare double @pow(double, double)
; Shouldn't fold because of -fno-builtin
define double @fmod_() nounwind uwtable ssp {
; FNOBUILTIN: @fmod_
; FNOBUILTIN-LABEL: @fmod_(
; FNOBUILTIN: %1 = call double @fmod(double 3.000000e+00, double 3.000000e+00)
%1 = call double @fmod(double 3.000000e+00, double 3.000000e+00)
ret double %1
@ -141,7 +141,7 @@ declare double @fmod(double, double)
; Shouldn't fold because of -fno-builtin
define double @atan2_() nounwind uwtable ssp {
; FNOBUILTIN: @atan2_
; FNOBUILTIN-LABEL: @atan2_(
; FNOBUILTIN: %1 = call double @atan2(double 3.000000e+00, double 3.000000e+00)
%1 = call double @atan2(double 3.000000e+00, double 3.000000e+00)
ret double %1

View File

@ -5,21 +5,21 @@
define i32 @test1() {
%A = extractvalue %struct { i32 2, [4 x i8] c"foo\00" }, 0
ret i32 %A
; CHECK: @test1
; CHECK-LABEL: @test1(
; CHECK: ret i32 2
}
define i8 @test2() {
%A = extractvalue %struct { i32 2, [4 x i8] c"foo\00" }, 1, 2
ret i8 %A
; CHECK: @test2
; CHECK-LABEL: @test2(
; CHECK: ret i8 111
}
define i32 @test3() {
%A = extractvalue [3 x %struct] [ %struct { i32 0, [4 x i8] c"aaaa" }, %struct { i32 1, [4 x i8] c"bbbb" }, %struct { i32 2, [4 x i8] c"cccc" } ], 1, 0
ret i32 %A
; CHECK: @test3
; CHECK-LABEL: @test3(
; CHECK: ret i32 1
}

View File

@ -5,21 +5,21 @@
define %struct @test1() {
%A = insertvalue %struct { i32 2, [4 x i8] c"foo\00" }, i32 1, 0
ret %struct %A
; CHECK: @test1
; CHECK-LABEL: @test1(
; CHECK: ret %struct { i32 1, [4 x i8] c"foo\00" }
}
define %struct @test2() {
%A = insertvalue %struct { i32 2, [4 x i8] c"foo\00" }, i8 1, 1, 2
ret %struct %A
; CHECK: @test2
; CHECK-LABEL: @test2(
; CHECK: ret %struct { i32 2, [4 x i8] c"fo\01\00" }
}
define [3 x %struct] @test3() {
%A = insertvalue [3 x %struct] [ %struct { i32 0, [4 x i8] c"aaaa" }, %struct { i32 1, [4 x i8] c"bbbb" }, %struct { i32 2, [4 x i8] c"cccc" } ], i32 -1, 1, 0
ret [3 x %struct] %A
; CHECK: @test3
; CHECK-LABEL: @test3(
; CHECK:ret [3 x %struct] [%struct { i32 0, [4 x i8] c"aaaa" }, %struct { i32 -1, [4 x i8] c"bbbb" }, %struct { i32 2, [4 x i8] c"cccc" }]
}

View File

@ -13,11 +13,11 @@ define i32 @test1() {
ret i32 %r
; 0xDEADBEEF
; LE: @test1
; LE-LABEL: @test1(
; LE: ret i32 -559038737
; 0xDEADBEEF
; BE: @test1
; BE-LABEL: @test1(
; BE: ret i32 -559038737
}
@ -28,11 +28,11 @@ define i16 @test2() {
ret i16 %r
; 0xBEEF
; LE: @test2
; LE-LABEL: @test2(
; LE: ret i16 -16657
; 0xDEAD
; BE: @test2
; BE-LABEL: @test2(
; BE: ret i16 -8531
}
@ -42,11 +42,11 @@ define i16 @test3() {
ret i16 %r
; 0xDEAD
; LE: @test3
; LE-LABEL: @test3(
; LE: ret i16 -8531
; 0xBEEF
; BE: @test3
; BE-LABEL: @test3(
; BE: ret i16 -16657
}
@ -56,11 +56,11 @@ define i16 @test4() {
ret i16 %r
; 0x00BA
; LE: @test4
; LE-LABEL: @test4(
; LE: ret i16 186
; 0xBA00
; BE: @test4
; BE-LABEL: @test4(
; BE: ret i16 -17920
}
@ -70,11 +70,11 @@ define i64 @test6() {
ret i64 %r
; 0x3FF_0000000000000
; LE: @test6
; LE-LABEL: @test6(
; LE: ret i64 4607182418800017408
; 0x3FF_0000000000000
; BE: @test6
; BE-LABEL: @test6(
; BE: ret i64 4607182418800017408
}
@ -84,11 +84,11 @@ define i16 @test7() {
ret i16 %r
; 0x0000
; LE: @test7
; LE-LABEL: @test7(
; LE: ret i16 0
; 0x3FF0
; BE: @test7
; BE-LABEL: @test7(
; BE: ret i16 16368
}
@ -97,10 +97,10 @@ define double @test8() {
%r = load double* bitcast({{i32,i8},i32}* @g1 to double*)
ret double %r
; LE: @test8
; LE-LABEL: @test8(
; LE: ret double 0xBADEADBEEF
; BE: @test8
; BE-LABEL: @test8(
; BE: ret double 0xDEADBEEFBA000000
}
@ -111,11 +111,11 @@ define i128 @test9() {
ret i128 %r
; 0x00000000_06B1BFF8_00000000_0000007B
; LE: @test9
; LE-LABEL: @test9(
; LE: ret i128 2071796475790618158476296315
; 0x00000000_0000007B_00000000_06B1BFF8
; BE: @test9
; BE-LABEL: @test9(
; BE: ret i128 2268949521066387161080
}
@ -124,10 +124,10 @@ define <2 x i64> @test10() {
%r = load <2 x i64>* bitcast({i64, i64}* @g3 to <2 x i64>*)
ret <2 x i64> %r
; LE: @test10
; LE-LABEL: @test10(
; LE: ret <2 x i64> <i64 123, i64 112312312>
; BE: @test10
; BE-LABEL: @test10(
; BE: ret <2 x i64> <i64 123, i64 112312312>
}
@ -142,11 +142,11 @@ entry:
ret i16 %a
; 0x08A1
; LE: @test11
; LE-LABEL: @test11(
; LE: ret i16 2209
; 0xA108
; BE: @test11
; BE-LABEL: @test11(
; BE: ret i16 -24312
}
@ -159,11 +159,11 @@ define i16 @test12() {
ret i16 %a
; 0x0062
; LE: @test12
; LE-LABEL: @test12(
; LE: ret i16 98
; 0x6200
; BE: @test12
; BE-LABEL: @test12(
; BE: ret i16 25088
}
@ -174,10 +174,10 @@ define i1 @test13() {
%A = load i1* bitcast (i8* @g5 to i1*)
ret i1 %A
; LE: @test13
; LE-LABEL: @test13(
; LE: ret i1 false
; BE: @test13
; BE-LABEL: @test13(
; BE: ret i1 false
}
@ -187,10 +187,10 @@ entry:
%tmp = load i64* bitcast ([2 x i8*]* @g6 to i64*)
ret i64 %tmp
; LE: @test14
; LE-LABEL: @test14(
; LE: ret i64 1
; BE: @test14
; BE-LABEL: @test14(
; BE: ret i64 1
}
@ -199,9 +199,9 @@ entry:
%tmp = load i64* bitcast (i8** getelementptr inbounds ([2 x i8*]* @g6, i32 0, i64 1) to i64*)
ret i64 %tmp
; LE: @test15
; LE-LABEL: @test15(
; LE: ret i64 2
; BE: @test15
; BE-LABEL: @test15(
; BE: ret i64 2
}

View File

@ -18,7 +18,7 @@ entry:
%t = call {i8, i1} @llvm.uadd.with.overflow.i8(i8 42, i8 100)
ret {i8, i1} %t
; CHECK: @uadd_1
; CHECK-LABEL: @uadd_1(
; CHECK: ret { i8, i1 } { i8 -114, i1 false }
}
@ -27,7 +27,7 @@ entry:
%t = call {i8, i1} @llvm.uadd.with.overflow.i8(i8 142, i8 120)
ret {i8, i1} %t
; CHECK: @uadd_2
; CHECK-LABEL: @uadd_2(
; CHECK: ret { i8, i1 } { i8 6, i1 true }
}
@ -40,7 +40,7 @@ entry:
%t = call {i8, i1} @llvm.usub.with.overflow.i8(i8 4, i8 2)
ret {i8, i1} %t
; CHECK: @usub_1
; CHECK-LABEL: @usub_1(
; CHECK: ret { i8, i1 } { i8 2, i1 false }
}
@ -49,7 +49,7 @@ entry:
%t = call {i8, i1} @llvm.usub.with.overflow.i8(i8 4, i8 6)
ret {i8, i1} %t
; CHECK: @usub_2
; CHECK-LABEL: @usub_2(
; CHECK: ret { i8, i1 } { i8 -2, i1 true }
}
@ -62,7 +62,7 @@ entry:
%t = call {i8, i1} @llvm.umul.with.overflow.i8(i8 100, i8 3)
ret {i8, i1} %t
; CHECK: @umul_1
; CHECK-LABEL: @umul_1(
; CHECK: ret { i8, i1 } { i8 44, i1 true }
}
@ -71,7 +71,7 @@ entry:
%t = call {i8, i1} @llvm.umul.with.overflow.i8(i8 100, i8 2)
ret {i8, i1} %t
; CHECK: @umul_2
; CHECK-LABEL: @umul_2(
; CHECK: ret { i8, i1 } { i8 -56, i1 false }
}
@ -84,7 +84,7 @@ entry:
%t = call {i8, i1} @llvm.sadd.with.overflow.i8(i8 42, i8 2)
ret {i8, i1} %t
; CHECK: @sadd_1
; CHECK-LABEL: @sadd_1(
; CHECK: ret { i8, i1 } { i8 44, i1 false }
}
@ -93,7 +93,7 @@ entry:
%t = call {i8, i1} @llvm.sadd.with.overflow.i8(i8 120, i8 10)
ret {i8, i1} %t
; CHECK: @sadd_2
; CHECK-LABEL: @sadd_2(
; CHECK: ret { i8, i1 } { i8 -126, i1 true }
}
@ -102,7 +102,7 @@ entry:
%t = call {i8, i1} @llvm.sadd.with.overflow.i8(i8 -120, i8 10)
ret {i8, i1} %t
; CHECK: @sadd_3
; CHECK-LABEL: @sadd_3(
; CHECK: ret { i8, i1 } { i8 -110, i1 false }
}
@ -111,7 +111,7 @@ entry:
%t = call {i8, i1} @llvm.sadd.with.overflow.i8(i8 -120, i8 -10)
ret {i8, i1} %t
; CHECK: @sadd_4
; CHECK-LABEL: @sadd_4(
; CHECK: ret { i8, i1 } { i8 126, i1 true }
}
@ -120,7 +120,7 @@ entry:
%t = call {i8, i1} @llvm.sadd.with.overflow.i8(i8 2, i8 -10)
ret {i8, i1} %t
; CHECK: @sadd_5
; CHECK-LABEL: @sadd_5(
; CHECK: ret { i8, i1 } { i8 -8, i1 false }
}
@ -134,7 +134,7 @@ entry:
%t = call {i8, i1} @llvm.ssub.with.overflow.i8(i8 4, i8 2)
ret {i8, i1} %t
; CHECK: @ssub_1
; CHECK-LABEL: @ssub_1(
; CHECK: ret { i8, i1 } { i8 2, i1 false }
}
@ -143,7 +143,7 @@ entry:
%t = call {i8, i1} @llvm.ssub.with.overflow.i8(i8 4, i8 6)
ret {i8, i1} %t
; CHECK: @ssub_2
; CHECK-LABEL: @ssub_2(
; CHECK: ret { i8, i1 } { i8 -2, i1 false }
}
@ -152,7 +152,7 @@ entry:
%t = call {i8, i1} @llvm.ssub.with.overflow.i8(i8 -10, i8 120)
ret {i8, i1} %t
; CHECK: @ssub_3
; CHECK-LABEL: @ssub_3(
; CHECK: ret { i8, i1 } { i8 126, i1 true }
}
@ -161,7 +161,7 @@ entry:
%t = call {i8, i1} @llvm.ssub.with.overflow.i8(i8 -10, i8 10)
ret {i8, i1} %t
; CHECK: @ssub_3b
; CHECK-LABEL: @ssub_3b(
; CHECK: ret { i8, i1 } { i8 -20, i1 false }
}
@ -170,7 +170,7 @@ entry:
%t = call {i8, i1} @llvm.ssub.with.overflow.i8(i8 120, i8 -10)
ret {i8, i1} %t
; CHECK: @ssub_4
; CHECK-LABEL: @ssub_4(
; CHECK: ret { i8, i1 } { i8 -126, i1 true }
}
@ -179,7 +179,7 @@ entry:
%t = call {i8, i1} @llvm.ssub.with.overflow.i8(i8 20, i8 -10)
ret {i8, i1} %t
; CHECK: @ssub_4b
; CHECK-LABEL: @ssub_4b(
; CHECK: ret { i8, i1 } { i8 30, i1 false }
}
@ -188,7 +188,7 @@ entry:
%t = call {i8, i1} @llvm.ssub.with.overflow.i8(i8 -20, i8 -10)
ret {i8, i1} %t
; CHECK: @ssub_5
; CHECK-LABEL: @ssub_5(
; CHECK: ret { i8, i1 } { i8 -10, i1 false }
}
@ -202,6 +202,6 @@ entry:
%t = call {i8, i1} @llvm.smul.with.overflow.i8(i8 -20, i8 -10)
ret {i8, i1} %t
; CHECK: @smul_1
; CHECK-LABEL: @smul_1(
; CHECK: ret { i8, i1 } { i8 -56, i1 true }
}

View File

@ -1,6 +1,6 @@
; RUN: opt -S < %s -correlated-propagation | FileCheck %s
; CHECK: @test
; CHECK-LABEL: @test(
define i16 @test(i32 %a, i1 %b) {
entry:
%c = icmp eq i32 %a, 0

View File

@ -1,7 +1,7 @@
; RUN: opt < %s -correlated-propagation -S | FileCheck %s
; PR2581
; CHECK: @test1
; CHECK-LABEL: @test1(
define i32 @test1(i1 %C) nounwind {
br i1 %C, label %exit, label %body
@ -18,7 +18,7 @@ exit: ; preds = %0
; PR4420
declare i1 @ext()
; CHECK: @test2
; CHECK-LABEL: @test2(
define i1 @test2() {
entry:
%cond = tail call i1 @ext() ; <i1> [#uses=2]
@ -42,7 +42,7 @@ bb3: ; preds = %bb1
; PR4855
@gv = internal constant i8 7
; CHECK: @test3
; CHECK-LABEL: @test3(
define i8 @test3(i8* %a) nounwind {
entry:
%cond = icmp eq i8* %a, @gv
@ -58,7 +58,7 @@ bb2: ; preds = %entry
}
; PR1757
; CHECK: @test4
; CHECK-LABEL: @test4(
define i32 @test4(i32) {
EntryBlock:
; CHECK: icmp sgt i32 %0, 2
@ -83,7 +83,7 @@ LessThanOrEqualToTwo:
declare i32* @f(i32*)
define void @test5(i32* %x, i32* %y) {
; CHECK: @test5
; CHECK-LABEL: @test5(
entry:
%pre = icmp eq i32* %x, null
br i1 %pre, label %return, label %loop
@ -102,7 +102,7 @@ return:
}
define i32 @switch1(i32 %s) {
; CHECK: @switch1
; CHECK-LABEL: @switch1(
entry:
%cmp = icmp slt i32 %s, 0
br i1 %cmp, label %negative, label %out
@ -134,7 +134,7 @@ next:
}
define i32 @switch2(i32 %s) {
; CHECK: @switch2
; CHECK-LABEL: @switch2(
entry:
%cmp = icmp sgt i32 %s, 0
br i1 %cmp, label %positive, label %out
@ -157,7 +157,7 @@ next:
}
define i32 @switch3(i32 %s) {
; CHECK: @switch3
; CHECK-LABEL: @switch3(
entry:
%cmp = icmp sgt i32 %s, 0
br i1 %cmp, label %positive, label %out
@ -180,7 +180,7 @@ next:
}
define void @switch4(i32 %s) {
; CHECK: @switch4
; CHECK-LABEL: @switch4(
entry:
%cmp = icmp eq i32 %s, 0
br i1 %cmp, label %zero, label %out

View File

@ -17,7 +17,7 @@ else:
end:
ret i32 2
; CHECK: @test1
; CHECK-LABEL: @test1(
; CHECK: then:
; CHECK-NEXT: br i1 false, label %end, label %else
}
@ -37,12 +37,12 @@ else:
end:
ret i32 2
; CHECK: @test2
; CHECK-LABEL: @test2(
; CHECK: then:
; CHECK-NEXT: br i1 false, label %end, label %else
}
; CHECK: @test3
; CHECK-LABEL: @test3(
define i32 @test3(i32 %c) nounwind {
%cmp = icmp slt i32 %c, 2
br i1 %cmp, label %if.then, label %if.end
@ -71,7 +71,7 @@ if.end8:
ret i32 4
}
; CHECK: @test4
; CHECK-LABEL: @test4(
define i32 @test4(i32 %c) nounwind {
switch i32 %c, label %sw.default [
i32 1, label %sw.bb
@ -99,7 +99,7 @@ return:
ret i32 %retval.0
}
; CHECK: @test5
; CHECK-LABEL: @test5(
define i1 @test5(i32 %c) nounwind {
%cmp = icmp slt i32 %c, 5
br i1 %cmp, label %if.then, label %if.end
@ -121,7 +121,7 @@ if.end8:
ret i1 %cmp2
}
; CHECK: @test6
; CHECK-LABEL: @test6(
define i1 @test6(i32 %c) nounwind {
%cmp = icmp ule i32 %c, 7
br i1 %cmp, label %if.then, label %if.end
@ -143,7 +143,7 @@ sw.bb:
ret i1 %cmp2
}
; CHECK: @test7
; CHECK-LABEL: @test7(
define i1 @test7(i32 %c) nounwind {
entry:
switch i32 %c, label %sw.default [

View File

@ -7,7 +7,7 @@ define void @test(i32) {
define void @foo() {
call void @test(i32 0)
ret void
; CHECK: @foo
; CHECK-LABEL: @foo(
; CHECK: i32 undef
}

View File

@ -5,7 +5,7 @@ target triple = "x86_64-apple-darwin"
%"class.std::auto_ptr" = type { i32* }
; CHECK: @_Z3foov
; CHECK-LABEL: @_Z3foov(
define void @_Z3foov(%"class.std::auto_ptr"* noalias nocapture sret %agg.result) uwtable ssp {
_ZNSt8auto_ptrIiED1Ev.exit:
%temp.lvalue = alloca %"class.std::auto_ptr", align 8

View File

@ -8,7 +8,7 @@ target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f3
@glob2 = global %struct.vec2plusi zeroinitializer, align 16
define void @write24to28(i32* nocapture %p) nounwind uwtable ssp {
; CHECK: @write24to28
; CHECK-LABEL: @write24to28(
entry:
%arrayidx0 = getelementptr inbounds i32* %p, i64 1
%p3 = bitcast i32* %arrayidx0 to i8*
@ -20,7 +20,7 @@ entry:
}
define void @write28to32(i32* nocapture %p) nounwind uwtable ssp {
; CHECK: @write28to32
; CHECK-LABEL: @write28to32(
entry:
%p3 = bitcast i32* %p to i8*
; CHECK: call void @llvm.memset.p0i8.i64(i8* %p3, i8 0, i64 28, i32 4, i1 false)
@ -31,7 +31,7 @@ entry:
}
define void @dontwrite28to32memset(i32* nocapture %p) nounwind uwtable ssp {
; CHECK: @dontwrite28to32memset
; CHECK-LABEL: @dontwrite28to32memset(
entry:
%p3 = bitcast i32* %p to i8*
; CHECK: call void @llvm.memset.p0i8.i64(i8* %p3, i8 0, i64 32, i32 16, i1 false)
@ -42,7 +42,7 @@ entry:
}
define void @write32to36(%struct.vec2plusi* nocapture %p) nounwind uwtable ssp {
; CHECK: @write32to36
; CHECK-LABEL: @write32to36(
entry:
%0 = bitcast %struct.vec2plusi* %p to i8*
; CHECK: tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %0, i8* bitcast (%struct.vec2plusi* @glob2 to i8*), i64 32, i32 16, i1 false)
@ -53,7 +53,7 @@ entry:
}
define void @write16to32(%struct.vec2* nocapture %p) nounwind uwtable ssp {
; CHECK: @write16to32
; CHECK-LABEL: @write16to32(
entry:
%0 = bitcast %struct.vec2* %p to i8*
; CHECK: tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %0, i8* bitcast (%struct.vec2* @glob1 to i8*), i64 16, i32 16, i1 false)
@ -64,7 +64,7 @@ entry:
}
define void @dontwrite28to32memcpy(%struct.vec2* nocapture %p) nounwind uwtable ssp {
; CHECK: @dontwrite28to32memcpy
; CHECK-LABEL: @dontwrite28to32memcpy(
entry:
%0 = bitcast %struct.vec2* %p to i8*
; CHECK: tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %0, i8* bitcast (%struct.vec2* @glob1 to i8*), i64 32, i32 16, i1 false)
@ -80,7 +80,7 @@ declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i32, i1) nounwind
%struct.trapframe = type { i64, i64, i64 }
; bugzilla 11455 - make sure negative GEP's don't break this optimisation
; CHECK: @cpu_lwp_fork
; CHECK-LABEL: @cpu_lwp_fork(
define void @cpu_lwp_fork(%struct.trapframe* %md_regs, i64 %pcb_rsp0) nounwind uwtable noinline ssp {
entry:
%0 = inttoptr i64 %pcb_rsp0 to %struct.trapframe*

View File

@ -8,13 +8,13 @@ define void @test1(i32 *%V) {
store i8 0, i8* %V2
store i32 1234567, i32* %V
ret void
; CHECK: @test1
; CHECK-LABEL: @test1(
; CHECK-NEXT: store i32 1234567
}
; Note that we could do better by merging the two stores into one.
define void @test2(i32* %P) {
; CHECK: @test2
; CHECK-LABEL: @test2(
store i32 0, i32* %P
; CHECK: store i32
%Q = bitcast i32* %P to i16*
@ -25,7 +25,7 @@ define void @test2(i32* %P) {
define i32 @test3(double %__x) {
; CHECK: @test3
; CHECK-LABEL: @test3(
; CHECK: store double
%__u = alloca { [3 x i32] }
%tmp.1 = bitcast { [3 x i32] }* %__u to double*
@ -39,7 +39,7 @@ define i32 @test3(double %__x) {
; PR6043
define void @test4(i8* %P) {
; CHECK: @test4
; CHECK-LABEL: @test4(
; CHECK-NEXT: bitcast
; CHECK-NEXT: store double
@ -64,7 +64,7 @@ define void @test5(i32 %i) nounwind ssp {
call void @test5a(i32* %A)
ret void
; CHECK: @test5(
; CHECK-LABEL: @test5(
; CHECK-NEXT: alloca
; CHECK-NEXT: store i32 20
; CHECK-NEXT: call void @test5a

View File

@ -5,7 +5,7 @@ target datalayout = "e-p:64:64:64"
declare void @free(i8* nocapture)
declare noalias i8* @malloc(i64)
; CHECK: @test
; CHECK-LABEL: @test(
; CHECK-NEXT: bitcast
; CHECK-NEXT: @free
; CHECK-NEXT: ret void
@ -17,7 +17,7 @@ define void @test(i32* %Q, i32* %P) {
ret void
}
; CHECK: @test2
; CHECK-LABEL: @test2(
; CHECK-NEXT: bitcast
; CHECK-NEXT: @free
; CHECK-NEXT: ret void
@ -29,7 +29,7 @@ define void @test2({i32, i32}* %P) {
ret void
}
; CHECK: @test3
; CHECK-LABEL: @test3(
; CHECK-NOT: store
; CHECK: ret void
define void @test3() {
@ -42,7 +42,7 @@ define void @test3() {
}
; PR11240
; CHECK: @test4
; CHECK-LABEL: @test4(
; CHECK-NOT: store
; CHECK: ret void
define void @test4(i1 %x) nounwind {
@ -59,7 +59,7 @@ skipinit1:
ret void
}
; CHECK: @test5
; CHECK-LABEL: @test5(
define void @test5() {
br label %bb

View File

@ -2,7 +2,7 @@
declare i8* @strcpy(i8* %dest, i8* %src) nounwind
define void @test1(i8* %src) {
; CHECK: @test1
; CHECK-LABEL: @test1(
%B = alloca [16 x i8]
%dest = getelementptr inbounds [16 x i8]* %B, i64 0, i64 0
; CHECK-NOT: @strcpy
@ -13,7 +13,7 @@ define void @test1(i8* %src) {
declare i8* @strncpy(i8* %dest, i8* %src, i32 %n) nounwind
define void @test2(i8* %src) {
; CHECK: @test2
; CHECK-LABEL: @test2(
%B = alloca [16 x i8]
%dest = getelementptr inbounds [16 x i8]* %B, i64 0, i64 0
; CHECK-NOT: @strncpy
@ -24,7 +24,7 @@ define void @test2(i8* %src) {
declare i8* @strcat(i8* %dest, i8* %src) nounwind
define void @test3(i8* %src) {
; CHECK: @test3
; CHECK-LABEL: @test3(
%B = alloca [16 x i8]
%dest = getelementptr inbounds [16 x i8]* %B, i64 0, i64 0
; CHECK-NOT: @strcat
@ -35,7 +35,7 @@ define void @test3(i8* %src) {
declare i8* @strncat(i8* %dest, i8* %src, i32 %n) nounwind
define void @test4(i8* %src) {
; CHECK: @test4
; CHECK-LABEL: @test4(
%B = alloca [16 x i8]
%dest = getelementptr inbounds [16 x i8]* %B, i64 0, i64 0
; CHECK-NOT: @strncat
@ -45,7 +45,7 @@ define void @test4(i8* %src) {
}
define void @test5(i8* nocapture %src) {
; CHECK: @test5
; CHECK-LABEL: @test5(
%dest = alloca [100 x i8], align 16
%arraydecay = getelementptr inbounds [100 x i8]* %dest, i64 0, i64 0
%call = call i8* @strcpy(i8* %arraydecay, i8* %src)
@ -57,7 +57,7 @@ define void @test5(i8* nocapture %src) {
declare void @user(i8* %p)
define void @test6(i8* %src) {
; CHECK: @test6
; CHECK-LABEL: @test6(
%B = alloca [16 x i8]
%dest = getelementptr inbounds [16 x i8]* %B, i64 0, i64 0
; CHECK: @strcpy

View File

@ -7,7 +7,7 @@ declare void @llvm.lifetime.end(i64, i8* nocapture) nounwind
declare void @llvm.memset.p0i8.i8(i8* nocapture, i8, i8, i32, i1) nounwind
define void @test1() {
; CHECK: @test1
; CHECK-LABEL: @test1(
%A = alloca i8
store i8 0, i8* %A ;; Written to by memset

View File

@ -5,7 +5,7 @@ declare void @llvm.memmove.p0i8.p0i8.i8(i8* nocapture, i8* nocapture, i8, i32, i
declare void @llvm.memset.p0i8.i8(i8* nocapture, i8, i8, i32, i1) nounwind
define void @test1() {
; CHECK: @test1
; CHECK-LABEL: @test1(
%A = alloca i8
%B = alloca i8
@ -19,7 +19,7 @@ define void @test1() {
}
define void @test2() {
; CHECK: @test2
; CHECK-LABEL: @test2(
%A = alloca i8
%B = alloca i8
@ -33,7 +33,7 @@ define void @test2() {
}
define void @test3() {
; CHECK: @test3
; CHECK-LABEL: @test3(
%A = alloca i8
%B = alloca i8

View File

@ -10,7 +10,7 @@ define void @test1(i32* %Q, i32* %P) {
store i32 %DEAD, i32* %P
store i32 0, i32* %P
ret void
; CHECK: @test1
; CHECK-LABEL: @test1(
; CHECK-NEXT: store i32 0, i32* %P
; CHECK-NEXT: ret void
}
@ -21,7 +21,7 @@ define void @test2(i32 *%p, i32 *%q) {
store i32 20, i32* %q, align 4
store i32 30, i32* %p, align 4
ret void
; CHECK: @test2
; CHECK-LABEL: @test2(
; CHECK-NEXT: store i32 20
}
@ -30,7 +30,7 @@ define void @test2(i32 *%p, i32 *%q) {
@g = global i32 1
define i32 @test3(i32* %g_addr) nounwind {
; CHECK: @test3
; CHECK-LABEL: @test3(
; CHECK: load i32* %g_addr
%g_value = load i32* %g_addr, align 4
store i32 -1, i32* @g, align 4
@ -44,7 +44,7 @@ define void @test4(i32* %Q) {
%a = load i32* %Q
store volatile i32 %a, i32* %Q
ret void
; CHECK: @test4
; CHECK-LABEL: @test4(
; CHECK-NEXT: load i32
; CHECK-NEXT: store volatile
; CHECK-NEXT: ret void
@ -54,7 +54,7 @@ define void @test5(i32* %Q) {
%a = load volatile i32* %Q
store i32 %a, i32* %Q
ret void
; CHECK: @test5
; CHECK-LABEL: @test5(
; CHECK-NEXT: load volatile
; CHECK-NEXT: ret void
}
@ -66,7 +66,7 @@ define void @test6(i32 *%p, i8 *%q) {
call void @llvm.memset.p0i8.i64(i8* %q, i8 42, i64 900, i32 1, i1 false)
store i32 30, i32* %p, align 4
ret void
; CHECK: @test6
; CHECK-LABEL: @test6(
; CHECK-NEXT: call void @llvm.memset
}
@ -77,7 +77,7 @@ define void @test7(i32 *%p, i8 *%q, i8* noalias %r) {
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %q, i8* %r, i64 900, i32 1, i1 false)
store i32 30, i32* %p, align 4
ret void
; CHECK: @test7
; CHECK-LABEL: @test7(
; CHECK-NEXT: call void @llvm.memcpy
}
@ -90,7 +90,7 @@ define i32 @test8() {
%X = load i32* %V
ret i32 %X
; CHECK: @test8
; CHECK-LABEL: @test8(
; CHECK: store i32 1234567
}
@ -101,7 +101,7 @@ define void @test9(%struct.x* byval %a) nounwind {
%tmp2 = getelementptr %struct.x* %a, i32 0, i32 0
store i32 1, i32* %tmp2, align 4
ret void
; CHECK: @test9
; CHECK-LABEL: @test9(
; CHECK-NEXT: ret void
}
@ -111,7 +111,7 @@ define double @test10(i8* %X) {
store i8* %X, i8** %X_addr
%tmp.0 = va_arg i8** %X_addr, double
ret double %tmp.0
; CHECK: @test10
; CHECK-LABEL: @test10(
; CHECK: store
}
@ -119,7 +119,7 @@ define double @test10(i8* %X) {
; DSE should delete the dead trampoline.
declare void @test11f()
define void @test11() {
; CHECK: @test11
; CHECK-LABEL: @test11(
%storage = alloca [10 x i8], align 16 ; <[10 x i8]*> [#uses=1]
; CHECK-NOT: alloca
%cast = getelementptr [10 x i8]* %storage, i32 0, i32 0 ; <i8*> [#uses=1]
@ -140,7 +140,7 @@ define void @test12({ i32, i32 }* %x) nounwind {
store i32 %tmp5, i32* %tmp4, align 4
store i32 %tmp17, i32* %tmp7, align 4
ret void
; CHECK: @test12
; CHECK-LABEL: @test12(
; CHECK-NOT: tmp5
; CHECK: ret void
}
@ -173,7 +173,7 @@ define void @test14(i32* %Q) {
store i32 %DEAD, i32* %P
ret void
; CHECK: @test14
; CHECK-LABEL: @test14(
; CHECK-NEXT: ret void
}
@ -185,7 +185,7 @@ define void @test15(i8* %P, i8* %Q) nounwind ssp {
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %P, i8* %Q, i64 12, i32 1, i1 false)
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %P, i8* %Q, i64 12, i32 1, i1 false)
ret void
; CHECK: @test15
; CHECK-LABEL: @test15(
; CHECK-NEXT: call void @llvm.memcpy
; CHECK-NEXT: ret
}
@ -195,7 +195,7 @@ define void @test16(i8* %P, i8* %Q) nounwind ssp {
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %P, i8* %Q, i64 8, i32 1, i1 false)
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %P, i8* %Q, i64 12, i32 1, i1 false)
ret void
; CHECK: @test16
; CHECK-LABEL: @test16(
; CHECK-NEXT: call void @llvm.memcpy
; CHECK-NEXT: ret
}
@ -205,7 +205,7 @@ define void @test17(i8* %P, i8* noalias %Q) nounwind ssp {
tail call void @llvm.memset.p0i8.i64(i8* %P, i8 42, i64 8, i32 1, i1 false)
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %P, i8* %Q, i64 12, i32 1, i1 false)
ret void
; CHECK: @test17
; CHECK-LABEL: @test17(
; CHECK-NEXT: call void @llvm.memcpy
; CHECK-NEXT: ret
}
@ -215,7 +215,7 @@ define void @test17v(i8* %P, i8* %Q) nounwind ssp {
tail call void @llvm.memset.p0i8.i64(i8* %P, i8 42, i64 8, i32 1, i1 true)
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %P, i8* %Q, i64 12, i32 1, i1 false)
ret void
; CHECK: @test17v
; CHECK-LABEL: @test17v(
; CHECK-NEXT: call void @llvm.memset
; CHECK-NEXT: call void @llvm.memcpy
; CHECK-NEXT: ret
@ -229,7 +229,7 @@ define void @test18(i8* %P, i8* %Q, i8* %R) nounwind ssp {
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %P, i8* %Q, i64 12, i32 1, i1 false)
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %P, i8* %R, i64 12, i32 1, i1 false)
ret void
; CHECK: @test18
; CHECK-LABEL: @test18(
; CHECK-NEXT: call void @llvm.memcpy
; CHECK-NEXT: call void @llvm.memcpy
; CHECK-NEXT: ret
@ -246,7 +246,7 @@ bb:
call void @test19f({i32}* byval align 4 %arg5)
ret void
; CHECK: @test19(
; CHECK-LABEL: @test19(
; CHECK: store i32 912
; CHECK: call void @test19f
}
@ -256,10 +256,10 @@ define void @test20() {
store i8 0, i8* %m
ret void
}
; CHECK: @test20
; CHECK-LABEL: @test20(
; CHECK-NEXT: ret void
; CHECK: @test21
; CHECK-LABEL: @test21(
define void @test21() {
%m = call i8* @calloc(i32 9, i32 7)
store i8 0, i8* %m
@ -267,7 +267,7 @@ define void @test21() {
ret void
}
; CHECK: @test22(
; CHECK-LABEL: @test22(
define void @test22(i1 %i, i32 %k, i32 %m) nounwind {
%k.addr = alloca i32
%m.addr = alloca i32
@ -278,7 +278,7 @@ define void @test22(i1 %i, i32 %k, i32 %m) nounwind {
}
; PR13547
; CHECK: @test23
; CHECK-LABEL: @test23(
; CHECK: store i8 97
; CHECK: store i8 0
declare noalias i8* @strdup(i8* nocapture) nounwind
@ -293,7 +293,7 @@ define noalias i8* @test23() nounwind uwtable ssp {
}
; Make sure same sized store to later element is deleted
; CHECK: @test24
; CHECK-LABEL: @test24(
; CHECK-NOT: store i32 0
; CHECK-NOT: store i32 0
; CHECK: store i32 %b
@ -312,7 +312,7 @@ define void @test24([2 x i32]* %a, i32 %b, i32 %c) nounwind {
}
; Check another case like PR13547 where strdup is not like malloc.
; CHECK: @test25
; CHECK-LABEL: @test25(
; CHECK: load i8
; CHECK: store i8 0
; CHECK: store i8 %tmp

View File

@ -1,7 +1,7 @@
; RUN: opt < %s -S -early-cse | FileCheck %s
; CHECK: @test1
; CHECK-LABEL: @test1(
define void @test1(i8 %V, i32 *%P) {
%A = bitcast i64 42 to double ;; dead
%B = add i32 4, 19 ;; constant folds
@ -33,7 +33,7 @@ define void @test1(i8 %V, i32 *%P) {
;; Simple load value numbering.
; CHECK: @test2
; CHECK-LABEL: @test2(
define i32 @test2(i32 *%P) {
%V1 = load i32* %P
%V2 = load i32* %P
@ -43,7 +43,7 @@ define i32 @test2(i32 *%P) {
}
;; Cross block load value numbering.
; CHECK: @test3
; CHECK-LABEL: @test3(
define i32 @test3(i32 *%P, i1 %Cond) {
%V1 = load i32* %P
br i1 %Cond, label %T, label %F
@ -59,7 +59,7 @@ F:
}
;; Cross block load value numbering stops when stores happen.
; CHECK: @test4
; CHECK-LABEL: @test4(
define i32 @test4(i32 *%P, i1 %Cond) {
%V1 = load i32* %P
br i1 %Cond, label %T, label %F
@ -79,7 +79,7 @@ F:
declare i32 @func(i32 *%P) readonly
;; Simple call CSE'ing.
; CHECK: @test5
; CHECK-LABEL: @test5(
define i32 @test5(i32 *%P) {
%V1 = call i32 @func(i32* %P)
%V2 = call i32 @func(i32* %P)
@ -89,7 +89,7 @@ define i32 @test5(i32 *%P) {
}
;; Trivial Store->load forwarding
; CHECK: @test6
; CHECK-LABEL: @test6(
define i32 @test6(i32 *%P) {
store i32 42, i32* %P
%V1 = load i32* %P
@ -98,7 +98,7 @@ define i32 @test6(i32 *%P) {
}
;; Trivial dead store elimination.
; CHECK: @test7
; CHECK-LABEL: @test7(
define void @test7(i32 *%P) {
store i32 42, i32* %P
store i32 45, i32* %P
@ -108,7 +108,7 @@ define void @test7(i32 *%P) {
}
;; Readnone functions aren't invalidated by stores.
; CHECK: @test8
; CHECK-LABEL: @test8(
define i32 @test8(i32 *%P) {
%V1 = call i32 @func(i32* %P) readnone
store i32 4, i32* %P

View File

@ -1,6 +1,6 @@
; RUN: opt < %s -S -early-cse | FileCheck %s
; CHECK: @test1
; CHECK-LABEL: @test1(
define void @test1(float %A, float %B, float* %PA, float* %PB) {
; CHECK-NEXT: fadd
; CHECK-NEXT: store
@ -13,7 +13,7 @@ define void @test1(float %A, float %B, float* %PA, float* %PB) {
ret void
}
; CHECK: @test2
; CHECK-LABEL: @test2(
define void @test2(float %A, float %B, i1* %PA, i1* %PB) {
; CHECK-NEXT: fcmp
; CHECK-NEXT: store
@ -26,7 +26,7 @@ define void @test2(float %A, float %B, i1* %PA, i1* %PB) {
ret void
}
; CHECK: @test3
; CHECK-LABEL: @test3(
define void @test3(float %A, float %B, i1* %PA, i1* %PB) {
; CHECK-NEXT: fcmp
; CHECK-NEXT: store
@ -39,7 +39,7 @@ define void @test3(float %A, float %B, i1* %PA, i1* %PB) {
ret void
}
; CHECK: @test4
; CHECK-LABEL: @test4(
define void @test4(i32 %A, i32 %B, i1* %PA, i1* %PB) {
; CHECK-NEXT: icmp
; CHECK-NEXT: store
@ -52,7 +52,7 @@ define void @test4(i32 %A, i32 %B, i1* %PA, i1* %PB) {
ret void
}
; CHECK: @test5
; CHECK-LABEL: @test5(
define void @test5(i32 %A, i32 %B, i1* %PA, i1* %PB) {
; CHECK-NEXT: icmp
; CHECK-NEXT: store

View File

@ -7,7 +7,7 @@ entry:
while.body:
br label %while.body
}
;CHECK: @main
;CHECK-LABEL: @main(
;CHECK: endless_loop
;CHECK: ret
define i32 @main() noreturn nounwind ssp uwtable {

View File

@ -3,7 +3,7 @@
declare i32 @foo(i32) readnone
define i1 @bar() {
; CHECK: @bar
; CHECK-LABEL: @bar(
%a = call i32 @foo (i32 0) readnone
%b = call i32 @foo (i32 0) readnone
%c = and i32 %a, %b

View File

@ -7,7 +7,7 @@ target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f3
target triple = "x86_64-apple-macosx10.7.0"
define i1 @rb_intern() nounwind ssp {
; CHECK: @rb_intern
; CHECK-LABEL: @rb_intern(
bb:
%tmp = alloca i8*, align 8

View File

@ -11,7 +11,7 @@ entry:
ret i64 %add1
}
; CHECK: @test1
; CHECK-LABEL: @test1(
; CHECK-NOT: add1
; CHECK: ret
@ -23,7 +23,7 @@ entry:
ret i64 %sub1
}
; CHECK: @test2
; CHECK-LABEL: @test2(
; CHECK-NOT: sub1
; CHECK: ret
@ -35,7 +35,7 @@ entry:
ret i64 %mul1
}
; CHECK: @test3
; CHECK-LABEL: @test3(
; CHECK-NOT: mul1
; CHECK: ret
@ -47,7 +47,7 @@ entry:
ret i64 %add1
}
; CHECK: @test4
; CHECK-LABEL: @test4(
; CHECK-NOT: add1
; CHECK: ret
@ -59,7 +59,7 @@ entry:
ret i64 %sub1
}
; CHECK: @test5
; CHECK-LABEL: @test5(
; CHECK-NOT: sub1
; CHECK: ret
@ -71,7 +71,7 @@ entry:
ret i64 %mul1
}
; CHECK: @test6
; CHECK-LABEL: @test6(
; CHECK-NOT: mul1
; CHECK: ret

View File

@ -3,7 +3,7 @@
declare void @use(i32, i32)
define void @foo(i32 %x, i32 %y) {
; CHECK: @foo
; CHECK-LABEL: @foo(
%add1 = add i32 %x, %y
%add2 = add i32 %y, %x
call void @use(i32 %add1, i32 %add2)
@ -14,7 +14,7 @@ define void @foo(i32 %x, i32 %y) {
declare void @vse(i1, i1)
define void @bar(i32 %x, i32 %y) {
; CHECK: @bar
; CHECK-LABEL: @bar(
%cmp1 = icmp ult i32 %x, %y
%cmp2 = icmp ugt i32 %y, %x
call void @vse(i1 %cmp1, i1 %cmp2)

View File

@ -2,7 +2,7 @@
@a = external global i32 ; <i32*> [#uses=7]
; CHECK: @test1
; CHECK-LABEL: @test1(
define i32 @test1() nounwind {
entry:
%0 = load i32* @a, align 4
@ -57,7 +57,7 @@ return: ; preds = %bb8
declare void @foo(i1)
declare void @bar(i32)
; CHECK: @test3
; CHECK-LABEL: @test3(
define void @test3(i32 %x, i32 %y) {
%xz = icmp eq i32 %x, 0
%yz = icmp eq i32 %y, 0
@ -79,7 +79,7 @@ nope:
ret void
}
; CHECK: @test4
; CHECK-LABEL: @test4(
define void @test4(i1 %b, i32 %x) {
br i1 %b, label %sw, label %case3
sw:
@ -112,7 +112,7 @@ case3:
ret void
}
; CHECK: @test5
; CHECK-LABEL: @test5(
define i1 @test5(i32 %x, i32 %y) {
%cmp = icmp eq i32 %x, %y
br i1 %cmp, label %same, label %different
@ -128,7 +128,7 @@ different:
ret i1 %cmp3
}
; CHECK: @test6
; CHECK-LABEL: @test6(
define i1 @test6(i32 %x, i32 %y) {
%cmp2 = icmp ne i32 %x, %y
%cmp = icmp eq i32 %x, %y
@ -144,7 +144,7 @@ different:
ret i1 %cmp3
}
; CHECK: @test7
; CHECK-LABEL: @test7(
define i1 @test7(i32 %x, i32 %y) {
%cmp = icmp sgt i32 %x, %y
br i1 %cmp, label %same, label %different
@ -160,7 +160,7 @@ different:
ret i1 %cmp3
}
; CHECK: @test8
; CHECK-LABEL: @test8(
define i1 @test8(i32 %x, i32 %y) {
%cmp2 = icmp sle i32 %x, %y
%cmp = icmp sgt i32 %x, %y
@ -177,7 +177,7 @@ different:
}
; PR1768
; CHECK: @test9
; CHECK-LABEL: @test9(
define i32 @test9(i32 %i, i32 %j) {
%cmp = icmp eq i32 %i, %j
br i1 %cmp, label %cond_true, label %ret
@ -193,7 +193,7 @@ ret:
}
; PR1768
; CHECK: @test10
; CHECK-LABEL: @test10(
define i32 @test10(i32 %j, i32 %i) {
%cmp = icmp eq i32 %i, %j
br i1 %cmp, label %cond_true, label %ret
@ -210,7 +210,7 @@ ret:
declare i32 @yogibar()
; CHECK: @test11
; CHECK-LABEL: @test11(
define i32 @test11(i32 %x) {
%v0 = call i32 @yogibar()
%v1 = call i32 @yogibar()
@ -233,7 +233,7 @@ next2:
ret i32 0
}
; CHECK: @test12
; CHECK-LABEL: @test12(
define i32 @test12(i32 %x) {
%cmp = icmp eq i32 %x, 0
br i1 %cmp, label %cond_true, label %cond_false

View File

@ -5,7 +5,7 @@ target datalayout = "e-p:32:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:32:32-
@p = external global i32
define i32 @test(i32 %n) nounwind {
; CHECK: @test
; CHECK-LABEL: @test(
entry:
br label %for.cond

View File

@ -21,11 +21,11 @@ if.then: ; preds = %entry
if.end: ; preds = %if.then, %entry
ret i8* %call
; CHECK: @test
; CHECK-LABEL: @test(
; CHECK-NOT: load
; CHECK-NOT: icmp
; CHECK_NO_LIBCALLS: @test
; CHECK_NO_LIBCALLS-LABEL: @test(
; CHECK_NO_LIBCALLS: load
; CHECK_NO_LIBCALLS: icmp
}

View File

@ -5,7 +5,7 @@ target datalayout = "e-p:64:64:64"
; GVN should ignore the store to p[1] to see that the load from p[0] is
; fully redundant.
; CHECK: @yes
; CHECK-LABEL: @yes(
; CHECK: if.then:
; CHECK-NEXT: store i32 0, i32* %q
; CHECK-NEXT: ret void
@ -30,7 +30,7 @@ if.else:
; fully redundant. However, the second load is larger, so it's not a simple
; redundancy.
; CHECK: @watch_out_for_size_change
; CHECK-LABEL: @watch_out_for_size_change(
; CHECK: if.then:
; CHECK-NEXT: store i32 0, i32* %q
; CHECK-NEXT: ret void

View File

@ -2,7 +2,7 @@
target datalayout = "e-p:64:64:64"
; CHECK: @foo
; CHECK-LABEL: @foo(
; CHECK: entry.end_crit_edge:
; CHECK: %n.pre = load i32* %q.phi.trans.insert
; CHECK: then:

View File

@ -10,7 +10,7 @@ define <2 x i32> @test1() {
store <2 x i8*> %v3, <2 x i8*>* %v4
%v5 = load <2 x i32>* %v1
ret <2 x i32> %v5
; CHECK: @test1
; CHECK-LABEL: @test1(
; CHECK: %v1 = alloca <2 x i32>
; CHECK: call void @anything(<2 x i32>* %v1)
; CHECK: %v2 = load <2 x i32>* %v1

View File

@ -2,7 +2,7 @@
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
define i32 @test1(i32* %p, i1 %C) {
; CHECK: @test1
; CHECK-LABEL: @test1(
block1:
br i1 %C, label %block2, label %block3
@ -25,7 +25,7 @@ block4:
; This is a simple phi translation case.
define i32 @test2(i32* %p, i32* %q, i1 %C) {
; CHECK: @test2
; CHECK-LABEL: @test2(
block1:
br i1 %C, label %block2, label %block3
@ -50,7 +50,7 @@ block4:
; This is a PRE case that requires phi translation through a GEP.
define i32 @test3(i32* %p, i32* %q, i32** %Hack, i1 %C) {
; CHECK: @test3
; CHECK-LABEL: @test3(
block1:
%B = getelementptr i32* %q, i32 1
store i32* %B, i32** %Hack
@ -80,7 +80,7 @@ block4:
;; Here the loaded address is available, but the computation is in 'block3'
;; which does not dominate 'block2'.
define i32 @test4(i32* %p, i32* %q, i32** %Hack, i1 %C) {
; CHECK: @test4
; CHECK-LABEL: @test4(
block1:
br i1 %C, label %block2, label %block3
@ -116,7 +116,7 @@ block4:
;}
define void @test5(i32 %N, double* nocapture %G) nounwind ssp {
; CHECK: @test5
; CHECK-LABEL: @test5(
entry:
%0 = add i32 %N, -1
%1 = icmp sgt i32 %0, 0
@ -159,7 +159,7 @@ return:
;}
define void @test6(i32 %N, double* nocapture %G) nounwind ssp {
; CHECK: @test6
; CHECK-LABEL: @test6(
entry:
%0 = add i32 %N, -1
%1 = icmp sgt i32 %0, 0
@ -242,7 +242,7 @@ return:
;; Here the loaded address isn't available in 'block2' at all, requiring a new
;; GEP to be inserted into it.
define i32 @test8(i32* %p, i32* %q, i32** %Hack, i1 %C) {
; CHECK: @test8
; CHECK-LABEL: @test8(
block1:
br i1 %C, label %block2, label %block3
@ -365,7 +365,7 @@ return:
; Test critical edge splitting.
define i32 @test11(i32* %p, i1 %C, i32 %N) {
; CHECK: @test11
; CHECK-LABEL: @test11(
block1:
br i1 %C, label %block2, label %block3

View File

@ -4,7 +4,7 @@ target datalayout = "e-p:64:64:64"
; GVN should preserve the TBAA tag on loads when doing PRE.
; CHECK: @test
; CHECK-LABEL: @test(
; CHECK: %tmp33.pre = load i16* %P, align 2, !tbaa !0
; CHECK: br label %for.body
define void @test(i16 *%P, i16* %Q) nounwind {

View File

@ -4,7 +4,7 @@ target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f3
target triple = "i386-apple-darwin7"
define i32 @test1(i32* %b, i32* %c) nounwind {
; CHECK: @test1
; CHECK-LABEL: @test1(
entry:
%g = alloca i32
%t1 = icmp eq i32* %b, null
@ -36,7 +36,7 @@ bb2: ; preds = %bb1, %bb
}
define i8 @test2(i1 %cond, i32* %b, i32* %c) nounwind {
; CHECK: @test2
; CHECK-LABEL: @test2(
entry:
br i1 %cond, label %bb, label %bb1
@ -61,7 +61,7 @@ bb2:
}
define i32 @test3(i1 %cond, i32* %b, i32* %c) nounwind {
; CHECK: @test3
; CHECK-LABEL: @test3(
entry:
br i1 %cond, label %bb, label %bb1
@ -88,7 +88,7 @@ bb2:
; PR5313
define i32 @test4(i1 %cond, i32* %b, i32* %c) nounwind {
; CHECK: @test4
; CHECK-LABEL: @test4(
entry:
br i1 %cond, label %bb, label %bb1
@ -121,7 +121,7 @@ bb2:
;
; Should compile into one load in the loop.
define void @test5(i32 %N, double* nocapture %G) nounwind ssp {
; CHECK: @test5
; CHECK-LABEL: @test5(
bb.nph:
br label %for.body

View File

@ -7,7 +7,7 @@ define i32 @test0(i32 %V, i32* %P) {
%A = load i32* %P
ret i32 %A
; CHECK: @test0
; CHECK-LABEL: @test0(
; CHECK: ret i32 %V
}
@ -47,7 +47,7 @@ define float @coerce_mustalias1(i32 %V, i32* %P) {
%A = load float* %P2
ret float %A
; CHECK: @coerce_mustalias1
; CHECK-LABEL: @coerce_mustalias1(
; CHECK-NOT: load
; CHECK: ret float
}
@ -60,7 +60,7 @@ define float @coerce_mustalias2(i32* %V, i32** %P) {
%A = load float* %P2
ret float %A
; CHECK: @coerce_mustalias2
; CHECK-LABEL: @coerce_mustalias2(
; CHECK-NOT: load
; CHECK: ret float
}
@ -73,7 +73,7 @@ define i32* @coerce_mustalias3(float %V, float* %P) {
%A = load i32** %P2
ret i32* %A
; CHECK: @coerce_mustalias3
; CHECK-LABEL: @coerce_mustalias3(
; CHECK-NOT: load
; CHECK: ret i32*
}
@ -92,7 +92,7 @@ F:
%X = bitcast i32 %A to float
ret float %X
; CHECK: @coerce_mustalias4
; CHECK-LABEL: @coerce_mustalias4(
; CHECK: %A = load i32* %P
; CHECK-NOT: load
; CHECK: ret float
@ -107,7 +107,7 @@ define i8 @coerce_mustalias5(i32 %V, i32* %P) {
%A = load i8* %P2
ret i8 %A
; CHECK: @coerce_mustalias5
; CHECK-LABEL: @coerce_mustalias5(
; CHECK-NOT: load
; CHECK: ret i8
}
@ -120,7 +120,7 @@ define float @coerce_mustalias6(i64 %V, i64* %P) {
%A = load float* %P2
ret float %A
; CHECK: @coerce_mustalias6
; CHECK-LABEL: @coerce_mustalias6(
; CHECK-NOT: load
; CHECK: ret float
}
@ -133,7 +133,7 @@ define i8* @coerce_mustalias7(i64 %V, i64* %P) {
%A = load i8** %P2
ret i8* %A
; CHECK: @coerce_mustalias7
; CHECK-LABEL: @coerce_mustalias7(
; CHECK-NOT: load
; CHECK: ret i8*
}
@ -146,7 +146,7 @@ entry:
%arrayidx = getelementptr inbounds i16* %A, i64 42
%tmp2 = load i16* %arrayidx
ret i16 %tmp2
; CHECK: @memset_to_i16_local
; CHECK-LABEL: @memset_to_i16_local(
; CHECK-NOT: load
; CHECK: ret i16 257
}
@ -159,7 +159,7 @@ entry:
%arrayidx = getelementptr inbounds float* %A, i64 42 ; <float*> [#uses=1]
%tmp2 = load float* %arrayidx ; <float> [#uses=1]
ret float %tmp2
; CHECK: @memset_to_float_local
; CHECK-LABEL: @memset_to_float_local(
; CHECK-NOT: load
; CHECK: zext
; CHECK-NEXT: shl
@ -187,7 +187,7 @@ Cont:
%A = load i16* %P2
ret i16 %A
; CHECK: @memset_to_i16_nonlocal0
; CHECK-LABEL: @memset_to_i16_nonlocal0(
; CHECK: Cont:
; CHECK-NEXT: %A = phi i16 [ 514, %F ], [ 257, %T ]
; CHECK-NOT: load
@ -204,7 +204,7 @@ entry:
%arrayidx = getelementptr inbounds float* %A, i64 1 ; <float*> [#uses=1]
%tmp2 = load float* %arrayidx ; <float> [#uses=1]
ret float %tmp2
; CHECK: @memcpy_to_float_local
; CHECK-LABEL: @memcpy_to_float_local(
; CHECK-NOT: load
; CHECK: ret float 1.400000e+01
}
@ -228,7 +228,7 @@ Cont:
%A = load i8* %P3
ret i8 %A
; CHECK: @coerce_mustalias_nonlocal0
; CHECK-LABEL: @coerce_mustalias_nonlocal0(
; CHECK: Cont:
; CHECK: %A = phi i8 [
; CHECK-NOT: load
@ -254,7 +254,7 @@ Cont:
%A = load i8* %P3
ret i8 %A
; CHECK: @coerce_mustalias_nonlocal1
; CHECK-LABEL: @coerce_mustalias_nonlocal1(
; CHECK: Cont:
; CHECK: %A = phi i8 [
; CHECK-NOT: load
@ -277,7 +277,7 @@ Cont:
%A = load i8* %P3
ret i8 %A
; CHECK: @coerce_mustalias_pre0
; CHECK-LABEL: @coerce_mustalias_pre0(
; CHECK: F:
; CHECK: load i8* %P3
; CHECK: Cont:
@ -301,7 +301,7 @@ define i8 @coerce_offset0(i32 %V, i32* %P) {
%A = load i8* %P3
ret i8 %A
; CHECK: @coerce_offset0
; CHECK-LABEL: @coerce_offset0(
; CHECK-NOT: load
; CHECK: ret i8
}
@ -324,7 +324,7 @@ Cont:
%A = load i8* %P4
ret i8 %A
; CHECK: @coerce_offset_nonlocal0
; CHECK-LABEL: @coerce_offset_nonlocal0(
; CHECK: Cont:
; CHECK: %A = phi i8 [
; CHECK-NOT: load
@ -348,7 +348,7 @@ Cont:
%A = load i8* %P4
ret i8 %A
; CHECK: @coerce_offset_pre0
; CHECK-LABEL: @coerce_offset_pre0(
; CHECK: F:
; CHECK: load i8* %P4
; CHECK: Cont:
@ -378,7 +378,7 @@ block4:
%d = load i32* %c
ret i32 %d
; CHECK: @chained_load
; CHECK-LABEL: @chained_load(
; CHECK: %z = load i32** %p
; CHECK-NOT: load
; CHECK: %d = load i32* %z
@ -390,7 +390,7 @@ declare i1 @cond() readonly
declare i1 @cond2() readonly
define i32 @phi_trans2() {
; CHECK: @phi_trans2
; CHECK-LABEL: @phi_trans2(
entry:
%P = alloca i32, i32 400
br label %F1
@ -428,7 +428,7 @@ TY:
}
define i32 @phi_trans3(i32* %p) {
; CHECK: @phi_trans3
; CHECK-LABEL: @phi_trans3(
block1:
br i1 true, label %block2, label %block3
@ -469,7 +469,7 @@ exit:
}
define i8 @phi_trans4(i8* %p) {
; CHECK: @phi_trans4
; CHECK-LABEL: @phi_trans4(
entry:
%X3 = getelementptr i8* %p, i32 192
store i8 192, i8* %X3
@ -499,7 +499,7 @@ out:
}
define i8 @phi_trans5(i8* %p) {
; CHECK: @phi_trans5
; CHECK-LABEL: @phi_trans5(
entry:
%X4 = getelementptr i8* %p, i32 2
@ -542,7 +542,7 @@ entry:
%arraydecay = getelementptr inbounds [256 x i32]* %x, i32 0, i32 0 ; <i32*>
%tmp1 = load i32* %arraydecay ; <i32> [#uses=1]
ret i32 %tmp1
; CHECK: @memset_to_load
; CHECK-LABEL: @memset_to_load(
; CHECK: ret i32 0
}
@ -561,7 +561,7 @@ entry:
%add = add nsw i32 %tmp2, %conv
ret i32 %add
; TEMPORARILYDISABLED: @load_load_partial_alias
; TEMPORARILYDISABLED-LABEL: @load_load_partial_alias(
; TEMPORARILYDISABLED: load i32*
; TEMPORARILYDISABLED-NOT: load
; TEMPORARILYDISABLED: lshr i32 {{.*}}, 8
@ -588,7 +588,7 @@ land.lhs.true: ; preds = %entry
if.end:
ret i32 52
; TEMPORARILY_DISABLED: @load_load_partial_alias_cross_block
; TEMPORARILY_DISABLED-LABEL: @load_load_partial_alias_cross_block(
; TEMPORARILY_DISABLED: land.lhs.true:
; TEMPORARILY_DISABLED-NOT: load i8
; TEMPORARILY_DISABLED: ret i32 %conv6
@ -611,7 +611,7 @@ entry:
%conv2 = zext i8 %tmp1 to i32
%add = add nsw i32 %conv, %conv2
ret i32 %add
; CHECK: @test_widening1
; CHECK-LABEL: @test_widening1(
; CHECK-NOT: load
; CHECK: load i16*
; CHECK-NOT: load
@ -635,7 +635,7 @@ entry:
%add3 = add nsw i32 %add2, %conv3
ret i32 %add3
; CHECK: @test_widening2
; CHECK-LABEL: @test_widening2(
; CHECK-NOT: load
; CHECK: load i32*
; CHECK-NOT: load

View File

@ -1,7 +1,7 @@
; RUN: opt < %s -globalopt -S | FileCheck %s
define internal void @f() {
; CHECK-NOT: @f
; CHECK-NOT-LABEL: @f(
; CHECK: define void @a
ret void
}

View File

@ -3,7 +3,7 @@
@x = internal global i8* zeroinitializer
define void @f() {
; CHECK: @f
; CHECK-LABEL: @f(
; Check that we don't hit an assert in Constant::IsThreadDependent()
; when storing this blockaddress into a global.
@ -13,7 +13,7 @@ define void @f() {
}
define void @g() {
; CHECK: @g
; CHECK-LABEL: @g(
here:
ret void

View File

@ -3,7 +3,7 @@
@glbl = internal global i8* null
define void @test1a() {
; CHECK: @test1a
; CHECK-LABEL: @test1a(
; CHECK-NOT: store
; CHECK-NEXT: ret void
store i8* null, i8** @glbl
@ -11,7 +11,7 @@ define void @test1a() {
}
define void @test1b(i8* %p) {
; CHECK: @test1b
; CHECK-LABEL: @test1b(
; CHECK-NEXT: store
; CHECK-NEXT: ret void
store i8* %p, i8** @glbl
@ -19,7 +19,7 @@ define void @test1b(i8* %p) {
}
define void @test2() {
; CHECK: @test2
; CHECK-LABEL: @test2(
; CHECK: alloca i8
%txt = alloca i8
call void @foo2(i8* %txt)
@ -31,7 +31,7 @@ declare i8* @strdup(i8*)
declare void @foo2(i8*)
define void @test3() uwtable {
; CHECK: @test3
; CHECK-LABEL: @test3(
; CHECK-NOT: bb1:
; CHECK-NOT: bb2:
; CHECK: invoke

View File

@ -20,7 +20,7 @@ entry:
store i32* inttoptr (i64 sdiv (i64 ptrtoint (i32* @G to i64), i64 ptrtoint (i32* @H to i64)) to i32*), i32** %tmp, align 8
ret void
}
; CHECK: @init1
; CHECK-LABEL: @init1(
; CHECK: store i32*
; PR11705 - ptrtoint isn't safe in general in global initializers.
@ -30,5 +30,5 @@ entry:
store i128 ptrtoint (i32* @G to i128), i128* %tmp, align 16
ret void
}
; CHECK: @init2
; CHECK-LABEL: @init2(
; CHECK: store i128

View File

@ -19,7 +19,7 @@ define void @set2() {
}
define i1 @get() {
; CHECK: @get
; CHECK-LABEL: @get(
%A = load i32 addrspace(1) * @G
%C = icmp slt i32 %A, 2
ret i1 %C

View File

@ -7,14 +7,14 @@ define void @foo() {
%V = load i32* @G ; <i32> [#uses=1]
store i32 %V, i32* @G
ret void
; CHECK: @foo
; CHECK-LABEL: @foo(
; CHECK-NEXT: ret void
}
define i32 @bar() {
%X = load i32* @G ; <i32> [#uses=1]
ret i32 %X
; CHECK: @bar
; CHECK-LABEL: @bar(
; CHECK-NEXT: ret i32 17
}
@ -31,7 +31,7 @@ define void @qux() nounwind {
store i64* inttoptr (i64 1 to i64*), i64** @a, align 8
%l = load i64** @a, align 8
ret void
; CHECK: @qux
; CHECK-LABEL: @qux(
; CHECK-NOT: store
; CHECK-NOT: load
}

View File

@ -6,7 +6,7 @@
@G = internal global i8** null
define i32 @main(i32 %argc, i8** %argv) {
; CHECK: @main
; CHECK-LABEL: @main(
; CHECK: %G = alloca
store i8** %argv, i8*** @G
ret i32 0

View File

@ -29,7 +29,7 @@ entry:
%1 = load i32* %0, align 4
ret i32 %1
; CHECK: @f
; CHECK-LABEL: @f(
; Make sure that the load from @ip hasn't been removed.
; CHECK: load i32** @ip
; CHECK: ret
@ -46,7 +46,7 @@ entry:
tail call void @signal() nounwind
ret void
; CHECK: @g
; CHECK-LABEL: @g(
; Make sure that the store to @ip hasn't been removed.
; CHECK: store {{.*}} @ip
; CHECK: ret

View File

@ -6,6 +6,6 @@ define i32 @test1(i64 %idx) nounwind {
%arrayidx = getelementptr inbounds [10 x i32]* @zero, i64 0, i64 %idx
%l = load i32* %arrayidx
ret i32 %l
; CHECK: @test1
; CHECK-LABEL: @test1(
; CHECK: ret i32 0
}

View File

@ -4,7 +4,7 @@
target datalayout = "e-p:32:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:32:64-v128:32:128-a0:0:32-n32-S32"
target triple = "thumbv7-apple-darwin"
; CHECK: @test
; CHECK-LABEL: @test(
; CHECK: if.end.i126:
; CHECK: %exitcond = icmp ne i8* %incdec.ptr.i, getelementptr (i8* null, i32 undef)
define void @test() nounwind {

View File

@ -9,7 +9,7 @@
; SCEV. Since it's an i8*, it has unit stride so we never adjust the
; SCEV expression in a way that would convert it to an integer type.
; CHECK: @testnullptrptr
; CHECK-LABEL: @testnullptrptr(
; CHECK: loop:
; CHECK: icmp ne
define i8 @testnullptrptr(i8* %buf, i8* %end) nounwind {
@ -34,7 +34,7 @@ exit:
ret i8 %snext
}
; CHECK: @testptrptr
; CHECK-LABEL: @testptrptr(
; CHECK: loop:
; CHECK: icmp ne
define i8 @testptrptr(i8* %buf, i8* %end) nounwind {
@ -59,7 +59,7 @@ exit:
ret i8 %snext
}
; CHECK: @testnullptrint
; CHECK-LABEL: @testnullptrint(
; CHECK: loop:
; CHECK: icmp ne
define i8 @testnullptrint(i8* %buf, i8* %end) nounwind {
@ -89,7 +89,7 @@ exit:
ret i8 %snext
}
; CHECK: @testptrint
; CHECK-LABEL: @testptrint(
; CHECK: loop:
; CHECK: icmp ne
define i8 @testptrint(i8* %buf, i8* %end) nounwind {

View File

@ -1,7 +1,7 @@
; RUN: opt < %s -indvars -S | FileCheck %s
; PR11350: Check that SimplifyIndvar handles a cycle of useless self-phis.
; CHECK: @test
; CHECK-LABEL: @test(
; CHECK-NOT: lcssa = phi
define void @test() nounwind {
entry:

View File

@ -2,7 +2,7 @@
; PR13371: indvars pass incorrectly substitutes 'undef' values
;
; LFTR should not user %undef as the loop counter.
; CHECK: @test
; CHECK-LABEL: @test(
; CHECK-NOT: icmp{{.*}}undef
@.str3 = private constant [6 x i8] c"%lld\0A\00", align 1
declare i32 @printf(i8* noalias nocapture, ...) nounwind

View File

@ -19,7 +19,7 @@ for.body: ; preds = %for.body, %entry
for.end: ; preds = %for.body
ret void
; CHECK: @test1
; CHECK-LABEL: @test1(
; CHECK-NOT: phi i1
; CHECK: call void @aux(i1 false, i1 false)
}

View File

@ -21,7 +21,7 @@
declare void @func(i32)
; CHECK: @test
; CHECK-LABEL: @test(
define void @test(i32 %m) nounwind uwtable {
entry:
br label %for.body
@ -45,7 +45,7 @@ for.end: ; preds = %for.body
ret void
}
; CHECK: @test2
; CHECK-LABEL: @test2(
define i32 @test2(i32 %m) nounwind uwtable {
entry:
br label %for.body

View File

@ -7,7 +7,7 @@ target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f3
; Indvars should be able to simplify simple comparisons involving
; induction variables.
; CHECK: @foo
; CHECK-LABEL: @foo(
; CHECK: %cond = and i1 %tobool.not, true
define void @foo(i64 %n, i32* nocapture %p) nounwind {
@ -42,7 +42,7 @@ return:
; Don't eliminate an icmp that's contributing to the loop exit test though.
; CHECK: @_ZNK4llvm5APInt3ultERKS0_
; CHECK-LABEL: @_ZNK4llvm5APInt3ultERKS0_(
; CHECK: %tmp99 = icmp sgt i32 %i, -1
define i32 @_ZNK4llvm5APInt3ultERKS0_(i32 %tmp2.i1, i64** %tmp65, i64** %tmp73, i64** %tmp82, i64** %tmp90) {
@ -85,7 +85,7 @@ bb20.loopexit:
; Indvars should eliminate the icmp here.
; CHECK: @func_10
; CHECK-LABEL: @func_10(
; CHECK-NOT: icmp
; CHECK: ret void
@ -110,7 +110,7 @@ return:
; PR14432
; Indvars should not turn the second loop into an infinite one.
; CHECK: @func_11
; CHECK-LABEL: @func_11(
; CHECK: %tmp5 = icmp slt i32 %__key6.0, 10
; CHECK-NOT: br i1 true, label %noassert68, label %unrolledend
@ -162,7 +162,7 @@ unrolledend: ; preds = %forcond38
declare void @llvm.trap() noreturn nounwind
; In this case the second loop only has a single iteration, fold the header away
; CHECK: @func_12
; CHECK-LABEL: @func_12(
; CHECK: %tmp5 = icmp slt i32 %__key6.0, 10
; CHECK: br i1 true, label %noassert68, label %unrolledend
define i32 @func_12() nounwind uwtable {

View File

@ -3,7 +3,7 @@
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
; Indvars should be able to eliminate this srem.
; CHECK: @simple
; CHECK-LABEL: @simple(
; CHECK-NOT: rem
; CHECK: ret
@ -32,7 +32,7 @@ bb12: ; preds = %bb11, %bb
}
; Indvars should be able to eliminate the (i+1)%n.
; CHECK: @f
; CHECK-LABEL: @f(
; CHECK-NOT: rem
; CHECK: rem
; CHECK-NOT: rem

View File

@ -12,7 +12,7 @@ bb: ; preds = %bb, %entry
return: ; preds = %bb
ret void
; CHECK: @test1
; CHECK-LABEL: @test1(
; CHECK: icmp
}
@ -31,7 +31,7 @@ bb: ; preds = %bb, %entry
return: ; preds = %bb
ret void
; CHECK: @test2
; CHECK-LABEL: @test2(
; CHECK: icmp
}
@ -49,7 +49,7 @@ bb: ; preds = %bb, %entry
return:
ret void
; CHECK: @test3
; CHECK-LABEL: @test3(
; CHECK: fcmp
}
@ -66,7 +66,7 @@ bb: ; preds = %bb, %entry
return:
ret void
; CHECK: @test4
; CHECK-LABEL: @test4(
; CHECK-NOT: cmp
; CHECK: br i1 false
}
@ -86,7 +86,7 @@ define void @test5() nounwind {
exit:
ret void
; CHECK: @test5
; CHECK-LABEL: @test5(
; CHECK: icmp slt i32 {{.*}}, 0
; CHECK-NEXT: br i1
}

View File

@ -4,7 +4,7 @@ target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f3
; Indvars should be able to fold IV increments into shr when low bits are zero.
;
; CHECK: @foldIncShr
; CHECK-LABEL: @foldIncShr(
; CHECK: shr.1 = lshr i32 %0, 5
define i32 @foldIncShr(i32* %bitmap, i32 %bit_addr, i32 %nbits) nounwind {
entry:
@ -31,7 +31,7 @@ while.end:
; Invdars should not fold an increment into shr unless 2^shiftBits is
; a multiple of the recurrence step.
;
; CHECK: @noFoldIncShr
; CHECK-LABEL: @noFoldIncShr(
; CHECK: shr.1 = lshr i32 %inc.1, 5
define i32 @noFoldIncShr(i32* %bitmap, i32 %bit_addr, i32 %nbits) nounwind {
entry:

View File

@ -1,6 +1,6 @@
;RUN: opt -S %s -indvars | FileCheck %s
; CHECK-LABEL: @foo
; CHECK-LABEL-LABEL: @foo(
; CHECK-NOT: %lftr.wideiv = trunc i32 %indvars.iv.next to i16
; CHECK: %exitcond = icmp ne i32 %indvars.iv.next, 512
define void @foo() #0 {
@ -20,7 +20,7 @@ for.end: ; preds = %for.body
}
; Check that post-incrementing the backedge taken count does not overflow.
; CHECK-LABEL: @postinc
; CHECK-LABEL-LABEL: @postinc(
; CHECK: icmp eq i32 %indvars.iv.next, 256
define i32 @postinc() #0 {
entry:

View File

@ -165,7 +165,7 @@ entry:
%lim = add i32 %x, %n
%cmp.ph = icmp ult i32 %x, %lim
br i1 %cmp.ph, label %loop, label %exit
; CHECK: @geplftr
; CHECK-LABEL: @geplftr(
; CHECK: loop:
; CHECK: phi i8*
; DISABLE-NOT: phi // This check is currently disabled
@ -190,7 +190,7 @@ exit:
define void @nevertaken() nounwind uwtable ssp {
entry:
br label %loop
; CHECK: @nevertaken
; CHECK-LABEL: @nevertaken(
; CHECK: loop:
; CHECK-NOT: phi
; CHECK-NOT: add

View File

@ -5,7 +5,7 @@
; the exit value of the loop will be for some value, allowing us to substitute
; it directly into users outside of the loop, making the loop dead.
; CHECK: @linear_setne
; CHECK-LABEL: @linear_setne(
; CHECK: ret i32 100
define i32 @linear_setne() {
@ -22,7 +22,7 @@ loopexit: ; preds = %loop
ret i32 %i
}
; CHECK: @linear_setne_2
; CHECK-LABEL: @linear_setne_2(
; CHECK: ret i32 100
define i32 @linear_setne_2() {
@ -39,7 +39,7 @@ loopexit: ; preds = %loop
ret i32 %i
}
; CHECK: @linear_setne_overflow
; CHECK-LABEL: @linear_setne_overflow(
; CHECK: ret i32 0
define i32 @linear_setne_overflow() {
@ -56,7 +56,7 @@ loopexit: ; preds = %loop
ret i32 %i
}
; CHECK: @linear_setlt
; CHECK-LABEL: @linear_setlt(
; CHECK: ret i32 100
define i32 @linear_setlt() {
@ -73,7 +73,7 @@ loopexit: ; preds = %loop
ret i32 %i
}
; CHECK: @quadratic_setlt
; CHECK-LABEL: @quadratic_setlt(
; CHECK: ret i32 34
define i32 @quadratic_setlt() {
@ -91,7 +91,7 @@ loopexit: ; preds = %loop
ret i32 %i
}
; CHECK: @chained
; CHECK-LABEL: @chained(
; CHECK: ret i32 200
define i32 @chained() {
@ -117,7 +117,7 @@ loopexit2: ; preds = %loop2
ret i32 %j
}
; CHECK: @chained4
; CHECK-LABEL: @chained4(
; CHECK: ret i32 400
define i32 @chained4() {

View File

@ -27,6 +27,6 @@ bb14:
ret i32 0
}
; CHECK: @foo
; CHECK-LABEL: @foo(
; CHECK: bb8:
; CHECK: udiv

View File

@ -8,7 +8,7 @@ target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f3
; Indvars shouldn't emit a udiv here, because there's no udiv in the
; original code. This comes from SingleSource/Benchmarks/Shootout/sieve.c.
; CHECK: @main
; CHECK-LABEL: @main(
; CHECK-NOT: div
define i32 @main(i32 %argc, i8** nocapture %argv) nounwind {
@ -130,7 +130,7 @@ declare i32 @printf(i8* nocapture, ...) nounwind
; IndVars shouldn't be afraid to emit a udiv here, since there's a udiv in
; the original code.
; CHECK: @foo
; CHECK-LABEL: @foo(
; CHECK: for.body.preheader:
; CHECK-NEXT: udiv

View File

@ -26,7 +26,7 @@ for.body: ; preds = %entry, %for.body
for.end: ; preds = %for.body, %entry
ret void
; CHECK: @test1
; CHECK-LABEL: @test1(
; First check that we move the sub into the preheader, it doesn't have to be
; executed if %cmp4 == false

View File

@ -7,7 +7,7 @@ declare void @llvm.lifetime.start(i64 %size, i8* nocapture %ptr)
@glbl = external global i32
define void @outer1() {
; CHECK: @outer1
; CHECK-LABEL: @outer1(
; CHECK-NOT: call void @inner1
%ptr = alloca i32
call void @inner1(i32* %ptr)
@ -26,7 +26,7 @@ define void @inner1(i32 *%ptr) {
}
define void @outer2() {
; CHECK: @outer2
; CHECK-LABEL: @outer2(
; CHECK: call void @inner2
%ptr = alloca i32
call void @inner2(i32* %ptr)
@ -46,7 +46,7 @@ define void @inner2(i32 *%ptr) {
}
define void @outer3() {
; CHECK: @outer3
; CHECK-LABEL: @outer3(
; CHECK-NOT: call void @inner3
%ptr = alloca i32
call void @inner3(i32* %ptr, i1 undef)
@ -85,7 +85,7 @@ bb.false:
}
define void @outer4(i32 %A) {
; CHECK: @outer4
; CHECK-LABEL: @outer4(
; CHECK-NOT: call void @inner4
%ptr = alloca i32
call void @inner4(i32* %ptr, i32 %A)
@ -126,7 +126,7 @@ bb.false:
}
define void @outer5() {
; CHECK: @outer5
; CHECK-LABEL: @outer5(
; CHECK-NOT: call void @inner5
%ptr = alloca i32
call void @inner5(i1 false, i32* %ptr)

View File

@ -8,7 +8,7 @@ define i32 @inner1() alwaysinline {
ret i32 1
}
define i32 @outer1() {
; CHECK: @outer1
; CHECK-LABEL: @outer1(
; CHECK-NOT: call
; CHECK: ret
@ -17,7 +17,7 @@ define i32 @outer1() {
}
; The always inliner can't DCE internal functions. PR2945
; CHECK: @pr2945
; CHECK-LABEL: @pr2945(
define internal i32 @pr2945() nounwind {
ret i32 0
}
@ -31,7 +31,7 @@ define void @outer2(i32 %N) {
; a function with a dynamic alloca into one without a dynamic alloca.
; rdar://6655932
;
; CHECK: @outer2
; CHECK-LABEL: @outer2(
; CHECK-NOT: call void @inner2
; CHECK-NOT: call void @inner2
; CHECK: ret void
@ -51,7 +51,7 @@ entry:
}
define i32 @outer3() {
entry:
; CHECK: @outer3
; CHECK-LABEL: @outer3(
; CHECK-NOT: call i32 @a
; CHECK: ret
@ -69,7 +69,7 @@ entry:
define i32 @outer4() {
entry:
; CHECK: @outer4
; CHECK-LABEL: @outer4(
; CHECK: call i32 @b()
; CHECK: ret
@ -89,7 +89,7 @@ two:
ret i32 44
}
define i32 @outer5(i32 %x) {
; CHECK: @outer5
; CHECK-LABEL: @outer5(
; CHECK: call i32 @inner5
; CHECK: ret
@ -113,7 +113,7 @@ return:
ret void
}
define void @outer6() {
; CHECK: @outer6
; CHECK-LABEL: @outer6(
; CHECK: call void @inner6(i32 42)
; CHECK: ret

View File

@ -9,7 +9,7 @@ define i32 @test1(i32 %W) {
%X = call i32 @test1f(i32 7)
%Y = add i32 %X, %W
ret i32 %Y
; CHECK: @test1(
; CHECK-LABEL: @test1(
; CHECK-NEXT: %Y = add i32 7, %W
; CHECK-NEXT: ret i32 %Y
}
@ -20,7 +20,7 @@ define i32 @test1(i32 %W) {
%T = type { i32, i32 }
; CHECK-NOT: @test2f
; CHECK-NOT-LABEL: @test2f(
define internal %T* @test2f(i1 %cond, %T* %P) {
br i1 %cond, label %T, label %F
@ -41,7 +41,7 @@ define i32 @test2(i1 %cond) {
%D = load i32* %C
ret i32 %D
; CHECK: @test2(
; CHECK-LABEL: @test2(
; CHECK-NOT: = alloca
; CHECK: ret i32
}
@ -75,7 +75,7 @@ define i32 @test3() {
;
; The call to @h *can* be inlined.
; CHECK: @test
; CHECK-LABEL: @test(
define i32 @test() {
; CHECK: call i32 @f()
%a = call i32 @f()

View File

@ -40,5 +40,5 @@ define i32 @test2(i8* %this) ssp align 2 {
ret i32 %X
}
; CHECK: @test2
; CHECK-LABEL: @test2(
; CHECK-NEXT: ret i32 41

View File

@ -14,7 +14,7 @@ entry:
%X = add i32 %call, 4
ret i32 %X
; CHECK: @foo
; CHECK-LABEL: @foo(
; CHECK-NEXT: entry:
; CHECK-NEXT: store
; CHECK-NEXT: store

View File

@ -19,7 +19,7 @@ define internal void @callee(i32 %N) {
}
define void @foo(i32 %N) {
; CHECK: @foo
; CHECK-LABEL: @foo(
; CHECK: alloca i32, i32 %{{.*}}
; CHECK: call i8* @llvm.stacksave()
; CHECK: alloca i32, i32 %{{.*}}

View File

@ -12,9 +12,9 @@ entry:
%call = tail call i32 %tmp3() nounwind ; <i32> [#uses=1]
ret i32 %call
}
; CHECK: @foo
; CHECK-LABEL: @foo(
; CHECK: ret i32 7
; CHECK: @bar
; CHECK-LABEL: @bar(
; CHECK: ret i32 7
define internal i32 @bar() nounwind readnone ssp {

View File

@ -21,7 +21,7 @@ define i32 @caller(%struct.sphere* %i) {
%call = call i32 @ray_sphere(%struct.sphere* %i, %struct.ray* byval align 8 %shadow_ray, %struct.spoint* null)
ret i32 %call
; CHECK: @caller
; CHECK-LABEL: @caller(
; CHECK-NOT: call i32 @ray_sphere
; CHECK: ret i32
}

View File

@ -52,7 +52,7 @@ UnifiedReturnBlock: ; preds = %cond_next13
declare void @ext(i32*)
define void @test() {
; CHECK: @test
; CHECK-LABEL: @test(
; CHECK-NOT: ret
;
; FIXME: This should be a CHECK-NOT, but currently we have a bug that causes us
@ -202,7 +202,7 @@ for.cond12.for.inc26_crit_edge.2:
}
define void @crasher_outer() {
; CHECK: @crasher_outer
; CHECK-LABEL: @crasher_outer(
; CHECK-NOT: call
; CHECK: ret void
; CHECK-NOT: ret

View File

@ -21,7 +21,7 @@ define i32 @caller2() {
; inline and be cheap. We should eventually do that and lower the threshold here
; to 1.
;
; CHECK: @caller2
; CHECK-LABEL: @caller2(
; CHECK-NOT: call void @callee2
; CHECK: ret
@ -61,7 +61,7 @@ define i32 @caller3() {
; it doesn't count toward the inline cost when constant-prop proves those paths
; dead.
;
; CHECK: @caller3
; CHECK-LABEL: @caller3(
; CHECK-NOT: call
; CHECK: ret i32 6
@ -119,7 +119,7 @@ define i8 @caller4(i8 %z) {
; as they are used heavily in standard library code and generic C++ code where
; the arguments are oftent constant but complete generality is required.
;
; CHECK: @caller4
; CHECK-LABEL: @caller4(
; CHECK-NOT: call
; CHECK: ret i8 -1
@ -153,7 +153,7 @@ define i64 @caller5(i64 %y) {
; Check that we can round trip constants through various kinds of casts etc w/o
; losing track of the constant prop in the inline cost analysis.
;
; CHECK: @caller5
; CHECK-LABEL: @caller5(
; CHECK-NOT: call
; CHECK: ret i64 -1

View File

@ -200,7 +200,7 @@ for.end21: ; preds = %for.cond14
define i32 @fct3(i32 %c) nounwind uwtable ssp {
entry:
;CHECK: @fct3
;CHECK-LABEL: @fct3(
;CHECK: call i32 @fct1
; The inline keyword gives a sufficient benefits to inline fct2
;CHECK-NOT: call i32 @fct2
@ -216,7 +216,7 @@ entry:
define i32 @fct4(i32 %c) minsize nounwind uwtable ssp {
entry:
;CHECK: @fct4
;CHECK-LABEL: @fct4(
;CHECK: call i32 @fct1
; With Oz (minsize attribute), the benefit of inlining fct2
; is the same as fct1, thus no inlining for fct2

View File

@ -10,7 +10,7 @@ define void @helper() {
; Size in llvm.lifetime.X should be -1 (unknown).
define void @test() {
; CHECK: @test
; CHECK-LABEL: @test(
; CHECK-NOT: lifetime
; CHECK: llvm.lifetime.start(i64 -1
; CHECK-NOT: lifetime

View File

@ -14,7 +14,7 @@ define void @helper_both_markers() {
}
define void @test_both_markers() {
; CHECK: @test_both_markers
; CHECK-LABEL: @test_both_markers(
; CHECK: llvm.lifetime.start(i64 2
; CHECK-NEXT: llvm.lifetime.end(i64 2
call void @helper_both_markers()
@ -38,7 +38,7 @@ define void @helper_no_markers() {
;; We can't use CHECK-NEXT because there's an extra call void @use in between.
;; Instead, we use CHECK-NOT to verify that there are no other lifetime calls.
define void @test_no_marker() {
; CHECK: @test_no_marker
; CHECK-LABEL: @test_no_marker(
; CHECK-NOT: lifetime
; CHECK: llvm.lifetime.start(i64 1
; CHECK-NOT: lifetime
@ -64,7 +64,7 @@ define void @helper_two_casts() {
}
define void @test_two_casts() {
; CHECK: @test_two_casts
; CHECK-LABEL: @test_two_casts(
; CHECK-NOT: lifetime
; CHECK: llvm.lifetime.start(i64 4
; CHECK-NOT: lifetime
@ -88,7 +88,7 @@ define void @helper_arrays_alloca() {
}
define void @test_arrays_alloca() {
; CHECK: @test_arrays_alloca
; CHECK-LABEL: @test_arrays_alloca(
; CHECK-NOT: lifetime
; CHECK: llvm.lifetime.start(i64 40,
; CHECK-NOT: lifetime

Some files were not shown because too many files have changed in this diff Show More