From 8b7b5f9cfe9a47c2c3ad69b670c9fed21b29b153 Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Wed, 14 Dec 2022 15:35:42 +0100 Subject: [PATCH] [IndVarSimplify] Regenerate test checks (NFC) --- .../X86/replace-iv-with-loop-invariant.ll | 75 ++++++++++++++++------ 1 file changed, 56 insertions(+), 19 deletions(-) diff --git a/llvm/test/Transforms/IndVarSimplify/X86/replace-iv-with-loop-invariant.ll b/llvm/test/Transforms/IndVarSimplify/X86/replace-iv-with-loop-invariant.ll index 7656d10..da83593 100644 --- a/llvm/test/Transforms/IndVarSimplify/X86/replace-iv-with-loop-invariant.ll +++ b/llvm/test/Transforms/IndVarSimplify/X86/replace-iv-with-loop-invariant.ll @@ -1,3 +1,4 @@ +; NOTE: Assertions have been autogenerated by utils/update_test_checks.py ; RUN: opt < %s -passes=indvars -S | FileCheck %s target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" @@ -6,6 +7,16 @@ target triple = "x86_64-unknown-linux-gnu" @G = external global i32 define void @test0(i64* %arg) { +; CHECK-LABEL: @test0( +; CHECK-NEXT: bb: +; CHECK-NEXT: br label [[BB2:%.*]] +; CHECK: bb2: +; CHECK-NEXT: [[TMP:%.*]] = phi i64* [ [[ARG:%.*]], [[BB:%.*]] ], [ [[TMP7:%.*]], [[BB2]] ] +; CHECK-NEXT: [[TMP4:%.*]] = call i32* @wobble(i64* nonnull [[TMP]], i32* null) +; CHECK-NEXT: [[TMP5:%.*]] = load i32, i32* null, align 8 +; CHECK-NEXT: [[TMP7]] = load i64*, i64** undef, align 8 +; CHECK-NEXT: br label [[BB2]] +; bb: br label %bb2 @@ -17,10 +28,17 @@ bb2: br label %bb2 } -; CHECK-LABEL: void @test0 -; CHECK: load i32, i32* null - define void @test1(i64* %arg) { +; CHECK-LABEL: @test1( +; CHECK-NEXT: bb: +; CHECK-NEXT: br label [[BB2:%.*]] +; CHECK: bb2: +; CHECK-NEXT: [[TMP:%.*]] = phi i64* [ [[ARG:%.*]], [[BB:%.*]] ], [ [[TMP7:%.*]], [[BB2]] ] +; CHECK-NEXT: [[TMP4:%.*]] = call i32* @wobble(i64* nonnull [[TMP]], i32* inttoptr (i64 4 to i32*)) +; CHECK-NEXT: [[TMP5:%.*]] = load i32, i32* inttoptr (i64 4 to i32*), align 4 +; CHECK-NEXT: [[TMP7]] = load i64*, i64** undef, align 8 +; CHECK-NEXT: br label [[BB2]] +; bb: br label %bb2 @@ -32,10 +50,17 @@ bb2: br label %bb2 } -; CHECK-LABEL: void @test1 -; CHECK: load i32, i32* inttoptr (i64 4 to i32*) - define void @test2(i64* %arg) { +; CHECK-LABEL: @test2( +; CHECK-NEXT: bb: +; CHECK-NEXT: br label [[BB2:%.*]] +; CHECK: bb2: +; CHECK-NEXT: [[TMP:%.*]] = phi i64* [ [[ARG:%.*]], [[BB:%.*]] ], [ [[TMP7:%.*]], [[BB2]] ] +; CHECK-NEXT: [[TMP4:%.*]] = call i32* @wobble(i64* nonnull [[TMP]], i32* @G) +; CHECK-NEXT: [[TMP5:%.*]] = load i32, i32* @G, align 4 +; CHECK-NEXT: [[TMP7]] = load i64*, i64** undef, align 8 +; CHECK-NEXT: br label [[BB2]] +; bb: br label %bb2 @@ -47,11 +72,17 @@ bb2: br label %bb2 } -; CHECK-LABEL: void @test2 -; CHECK: load i32, i32* @G - - define void @test3(i64* %arg, i32* %loop.invariant) { +; CHECK-LABEL: @test3( +; CHECK-NEXT: bb: +; CHECK-NEXT: br label [[BB2:%.*]] +; CHECK: bb2: +; CHECK-NEXT: [[TMP:%.*]] = phi i64* [ [[ARG:%.*]], [[BB:%.*]] ], [ [[TMP7:%.*]], [[BB2]] ] +; CHECK-NEXT: [[TMP4:%.*]] = call i32* @wobble(i64* nonnull [[TMP]], i32* [[LOOP_INVARIANT:%.*]]) +; CHECK-NEXT: [[TMP5:%.*]] = load i32, i32* [[LOOP_INVARIANT]], align 4 +; CHECK-NEXT: [[TMP7]] = load i64*, i64** undef, align 8 +; CHECK-NEXT: br label [[BB2]] +; bb: br label %bb2 @@ -63,26 +94,32 @@ bb2: br label %bb2 } -; CHECK-LABEL: void @test3 -; CHECK: load i32, i32* %loop.invariant - define void @test4(i64* %arg, i32* %loop.invariant, i64 %N) { +; CHECK-LABEL: @test4( +; CHECK-NEXT: bb: +; CHECK-NEXT: [[TMP0:%.*]] = shl i64 [[N:%.*]], 6 +; CHECK-NEXT: [[SCEVGEP:%.*]] = getelementptr i32, i32* [[LOOP_INVARIANT:%.*]], i64 [[TMP0]] +; CHECK-NEXT: br label [[BB2:%.*]] +; CHECK: bb2: +; CHECK-NEXT: [[TMP:%.*]] = phi i64* [ [[ARG:%.*]], [[BB:%.*]] ], [ [[TMP7:%.*]], [[BB2]] ] +; CHECK-NEXT: [[MUL:%.*]] = mul nsw i64 [[N]], 64 +; CHECK-NEXT: [[PTR:%.*]] = getelementptr inbounds i32, i32* [[LOOP_INVARIANT]], i64 [[MUL]] +; CHECK-NEXT: [[TMP4:%.*]] = call i32* @wobble(i64* nonnull [[TMP]], i32* [[PTR]]) +; CHECK-NEXT: [[TMP5:%.*]] = load i32, i32* [[SCEVGEP]], align 4 +; CHECK-NEXT: [[TMP7]] = load i64*, i64** undef, align 8 +; CHECK-NEXT: br label [[BB2]] +; bb: br label %bb2 bb2: %tmp = phi i64* [%arg, %bb ], [ %tmp7, %bb2 ] %mul = mul nsw i64 %N, 64 - %ptr = getelementptr inbounds i32, i32* %loop.invariant, i64 %mul + %ptr = getelementptr inbounds i32, i32* %loop.invariant, i64 %mul %tmp4 = call i32* @wobble(i64* nonnull %tmp, i32* %ptr) %tmp5 = load i32, i32* %tmp4 %tmp7 = load i64*, i64** undef, align 8 br label %bb2 } -; CHECK-LABEL: void @test4 -; CHECK: [[P:%[a-zA-Z$._0-9]+]] = getelementptr i32, i32* %loop.invariant -; CHECK: phi -; CHECK: load i32, i32* [[P]] - declare i32* @wobble(i64*, i32* returned) -- 2.7.4