brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.4 KiB · d2baae7 Raw
65 lines · plain
1// RUN: mlir-translate -mlir-to-llvmir %s | FileCheck %s2 3// CHECK-LABEL: @test_prmt_default4llvm.func @test_prmt_default(%sel: i32, %lo: i32, %hi: i32) -> i32 {5  // CHECK: call i32 @llvm.nvvm.prmt(i32 %{{.*}}, i32 %{{.*}}, i32 %{{.*}})6  %result = nvvm.prmt #nvvm.permute_mode<default> %sel, %lo, %hi : i327  llvm.return %result : i328}9 10// CHECK-LABEL: @test_prmt_f4e11llvm.func @test_prmt_f4e(%pos: i32, %lo: i32, %hi: i32) -> i32 {12  // CHECK: call i32 @llvm.nvvm.prmt.f4e(i32 %{{.*}}, i32 %{{.*}}, i32 %{{.*}})13  %result = nvvm.prmt #nvvm.permute_mode<f4e> %pos, %lo, %hi : i3214  llvm.return %result : i3215}16 17// CHECK-LABEL: @test_prmt_b4e18llvm.func @test_prmt_b4e(%pos: i32, %lo: i32, %hi: i32) -> i32 {19  // CHECK: call i32 @llvm.nvvm.prmt.b4e(i32 %{{.*}}, i32 %{{.*}}, i32 %{{.*}})20  %result = nvvm.prmt #nvvm.permute_mode<b4e> %pos, %lo, %hi : i3221  llvm.return %result : i3222}23 24// CHECK-LABEL: @test_prmt_rc825llvm.func @test_prmt_rc8(%sel: i32, %val: i32) -> i32 {26  // CHECK: call i32 @llvm.nvvm.prmt.rc8(i32 %{{.*}}, i32 %{{.*}})27  %result = nvvm.prmt #nvvm.permute_mode<rc8> %sel, %val : i3228  llvm.return %result : i3229}30 31// CHECK-LABEL: @test_prmt_ecl32llvm.func @test_prmt_ecl(%sel: i32, %val: i32) -> i32 {33  // CHECK: call i32 @llvm.nvvm.prmt.ecl(i32 %{{.*}}, i32 %{{.*}})34  %result = nvvm.prmt #nvvm.permute_mode<ecl> %sel, %val : i3235  llvm.return %result : i3236}37 38// CHECK-LABEL: @test_prmt_ecr39llvm.func @test_prmt_ecr(%sel: i32, %val: i32) -> i32 {40  // CHECK: call i32 @llvm.nvvm.prmt.ecr(i32 %{{.*}}, i32 %{{.*}})41  %result = nvvm.prmt #nvvm.permute_mode<ecr> %sel, %val : i3242  llvm.return %result : i3243}44 45// CHECK-LABEL: @test_prmt_rc1646llvm.func @test_prmt_rc16(%sel: i32, %val: i32) -> i32 {47  // CHECK: call i32 @llvm.nvvm.prmt.rc16(i32 %{{.*}}, i32 %{{.*}})48  %result = nvvm.prmt #nvvm.permute_mode<rc16> %sel, %val : i3249  llvm.return %result : i3250}51 52// CHECK-LABEL: @test_prmt_mixed53llvm.func @test_prmt_mixed(%sel: i32, %lo: i32, %hi: i32) -> i32 {54  // CHECK: call i32 @llvm.nvvm.prmt(i32 %{{.*}}, i32 %{{.*}}, i32 %{{.*}})55  %r1 = nvvm.prmt #nvvm.permute_mode<default> %sel, %lo, %hi : i3256 57  // CHECK: call i32 @llvm.nvvm.prmt.rc8(i32 %{{.*}}, i32 %{{.*}})58  %r2 = nvvm.prmt #nvvm.permute_mode<rc8> %sel, %r1 : i3259 60  // CHECK: call i32 @llvm.nvvm.prmt.f4e(i32 %{{.*}}, i32 %{{.*}}, i32 %{{.*}})61  %r3 = nvvm.prmt #nvvm.permute_mode<f4e> %lo, %r2, %sel : i3262 63  llvm.return %r3 : i3264}65