From 51002bdb5e92bf8dec286b24ff8952bda6beb3b5 Mon Sep 17 00:00:00 2001 From: eopXD Date: Mon, 30 May 2022 13:40:06 -0700 Subject: [PATCH] [RISCV] Precommit test case to show bug in RISCVISelDagToDag The optimization level should not be restored into O2. This is a pre-commit test case to show fix in D126641. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D126677 --- llvm/test/CodeGen/RISCV/isel-optnone.ll | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 llvm/test/CodeGen/RISCV/isel-optnone.ll diff --git a/llvm/test/CodeGen/RISCV/isel-optnone.ll b/llvm/test/CodeGen/RISCV/isel-optnone.ll new file mode 100644 index 0000000..28db6d7 --- /dev/null +++ b/llvm/test/CodeGen/RISCV/isel-optnone.ll @@ -0,0 +1,24 @@ +; REQUIRES: asserts +; RUN: llc < %s -O0 -mtriple=riscv64 -debug-only=isel 2>&1 | FileCheck %s + +define i32* @fooOptnone(i32* %p, i32* %q, i32** %z) #0 { +; CHECK: Changing optimization level for Function fooOptnone +; CHECL: Before: -O2 ; After: -O0 + +; CHECK: Restoring optimization level for Function fooOptnone +; CHECK: Before: -O0 ; After: -O2 +entry: + %r = load i32, i32* %p + %s = load i32, i32* %q + %y = load i32*, i32** %z + + %t0 = add i32 %r, %s + %t1 = add i32 %t0, 1 + %t2 = getelementptr i32, i32* %y, i32 1 + %t3 = getelementptr i32, i32* %t2, i32 %t1 + + ret i32* %t3 + +} + +attributes #0 = { nounwind optnone noinline } -- 2.7.4