[mlir][spirv] NFC: Shuffle code around to better follow convention
[llvm-project.git] / mlir / test / Target / SPIRV / cast-ops.mlir
blobe04ac316f87367f55fb00f2ad1345a469db19f25
1 // RUN: mlir-translate -test-spirv-roundtrip -split-input-file %s | FileCheck %s
3 spv.module Logical GLSL450 requires #spv.vce<v1.0, [Shader], []> {
4   spv.func @bit_cast(%arg0 : f32) "None" {
5     // CHECK: {{%.*}} = spv.Bitcast {{%.*}} : f32 to i32
6     %0 = spv.Bitcast %arg0 : f32 to i32
7     // CHECK: {{%.*}} = spv.Bitcast {{%.*}} : i32 to si32
8     %1 = spv.Bitcast %0 : i32 to si32
9     // CHECK: {{%.*}} = spv.Bitcast {{%.*}} : si32 to i32
10     %2 = spv.Bitcast %1 : si32 to ui32
11     spv.Return
12   }
15 // -----
17 spv.module Logical GLSL450 requires #spv.vce<v1.0, [Shader], []> {
18   spv.func @convert_f_to_s(%arg0 : f32) -> i32 "None" {
19     // CHECK: {{%.*}} = spv.ConvertFToS {{%.*}} : f32 to i32
20     %0 = spv.ConvertFToS %arg0 : f32 to i32
21     spv.ReturnValue %0 : i32
22   }
23   spv.func @convert_f64_to_s32(%arg0 : f64) -> i32 "None" {
24     // CHECK: {{%.*}} = spv.ConvertFToS {{%.*}} : f64 to i32
25     %0 = spv.ConvertFToS %arg0 : f64 to i32
26     spv.ReturnValue %0 : i32
27   }
28   spv.func @convert_f_to_u(%arg0 : f32) -> i32 "None" {
29     // CHECK: {{%.*}} = spv.ConvertFToU {{%.*}} : f32 to i32
30     %0 = spv.ConvertFToU %arg0 : f32 to i32
31     spv.ReturnValue %0 : i32
32   }
33   spv.func @convert_f64_to_u32(%arg0 : f64) -> i32 "None" {
34     // CHECK: {{%.*}} = spv.ConvertFToU {{%.*}} : f64 to i32
35     %0 = spv.ConvertFToU %arg0 : f64 to i32
36     spv.ReturnValue %0 : i32
37   }
38   spv.func @convert_s_to_f(%arg0 : i32) -> f32 "None" {
39     // CHECK: {{%.*}} = spv.ConvertSToF {{%.*}} : i32 to f32
40     %0 = spv.ConvertSToF %arg0 : i32 to f32
41     spv.ReturnValue %0 : f32
42   }
43   spv.func @convert_s64_to_f32(%arg0 : i64) -> f32 "None" {
44     // CHECK: {{%.*}} = spv.ConvertSToF {{%.*}} : i64 to f32
45     %0 = spv.ConvertSToF %arg0 : i64 to f32
46     spv.ReturnValue %0 : f32
47   }
48   spv.func @convert_u_to_f(%arg0 : i32) -> f32 "None" {
49     // CHECK: {{%.*}} = spv.ConvertUToF {{%.*}} : i32 to f32
50     %0 = spv.ConvertUToF %arg0 : i32 to f32
51     spv.ReturnValue %0 : f32
52   }
53   spv.func @convert_u64_to_f32(%arg0 : i64) -> f32 "None" {
54     // CHECK: {{%.*}} = spv.ConvertUToF {{%.*}} : i64 to f32
55     %0 = spv.ConvertUToF %arg0 : i64 to f32
56     spv.ReturnValue %0 : f32
57   }
58   spv.func @f_convert(%arg0 : f32) -> f64 "None" {
59     // CHECK: {{%.*}} = spv.FConvert {{%.*}} : f32 to f64
60     %0 = spv.FConvert %arg0 : f32 to f64
61     spv.ReturnValue %0 : f64
62   }
63   spv.func @s_convert(%arg0 : i32) -> i64 "None" {
64     // CHECK: {{%.*}} = spv.SConvert {{%.*}} : i32 to i64
65     %0 = spv.SConvert %arg0 : i32 to i64
66     spv.ReturnValue %0 : i64
67   }
68   spv.func @u_convert(%arg0 : i32) -> i64 "None" {
69     // CHECK: {{%.*}} = spv.UConvert {{%.*}} : i32 to i64
70     %0 = spv.UConvert %arg0 : i32 to i64
71     spv.ReturnValue %0 : i64
72   }