Mercurial > hg > CbC > CbC_llvm
view llvm/test/Transforms/MergeFunc/shufflevector.ll @ 225:f7655407a6ba
remove unnecessary files
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 19 Jul 2021 03:48:36 +0900 |
parents | 0572611fdcc8 |
children | 1f2b6ac9f198 |
line wrap: on
line source
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py ; RUN: opt -S -mergefunc < %s | FileCheck %s define internal <2 x i32> @test1(<2 x i32> %v1, <2 x i32> %v2) { ; CHECK-LABEL: @test1( ; CHECK-NEXT: [[X:%.*]] = shufflevector <2 x i32> [[V1:%.*]], <2 x i32> [[V2:%.*]], <2 x i32> <i32 0, i32 1> ; CHECK-NEXT: ret <2 x i32> [[X]] ; %x = shufflevector <2 x i32> %v1, <2 x i32> %v2, <2 x i32> <i32 0, i32 1> ret <2 x i32> %x } ; Same mask as test1. define internal <2 x i32> @test2(<2 x i32> %v1, <2 x i32> %v2) { %x = shufflevector <2 x i32> %v1, <2 x i32> %v2, <2 x i32> <i32 0, i32 1> ret <2 x i32> %x } ; Different mask than test1, don't merge. define internal <2 x i32> @test3(<2 x i32> %v1, <2 x i32> %v2) { ; CHECK-LABEL: @test3( ; CHECK-NEXT: [[X:%.*]] = shufflevector <2 x i32> [[V1:%.*]], <2 x i32> [[V2:%.*]], <2 x i32> <i32 1, i32 0> ; CHECK-NEXT: ret <2 x i32> [[X]] ; %x = shufflevector <2 x i32> %v1, <2 x i32> %v2, <2 x i32> <i32 1, i32 0> ret <2 x i32> %x } define void @caller(<2 x i32> %v1, <2 x i32> %v2) { ; CHECK-LABEL: @caller( ; CHECK-NEXT: [[TMP1:%.*]] = call <2 x i32> @test1(<2 x i32> [[V1:%.*]], <2 x i32> [[V2:%.*]]) ; CHECK-NEXT: [[TMP2:%.*]] = call <2 x i32> @test1(<2 x i32> [[V1]], <2 x i32> [[V2]]) ; CHECK-NEXT: [[TMP3:%.*]] = call <2 x i32> @test3(<2 x i32> [[V1]], <2 x i32> [[V2]]) ; CHECK-NEXT: ret void ; call <2 x i32> @test1(<2 x i32> %v1, <2 x i32> %v2) call <2 x i32> @test2(<2 x i32> %v1, <2 x i32> %v2) call <2 x i32> @test3(<2 x i32> %v1, <2 x i32> %v2) ret void }