brintos

brintos / llvm-project-archived public Read only

0
0
Text · 19.5 KiB · 4cc0819 Raw
514 lines · plain
1// RUN: fir-opt --split-input-file --fir-to-llvm-ir="target=x86_64-unknown-linux-gnu" %s | FileCheck %s2// RUN: fir-opt --split-input-file --fir-to-llvm-ir="target=aarch64-unknown-linux-gnu" %s | FileCheck %s3// RUN: fir-opt --split-input-file --fir-to-llvm-ir="target=i386-unknown-linux-gnu" %s | FileCheck %s4// RUN: fir-opt --split-input-file --fir-to-llvm-ir="target=powerpc64le-unknown-linux-gn" %s | FileCheck %s5 6// -----7// CHECK-LABEL: @test_l1_i18// CHECK: [[t0:%[0-9]*]] = llvm.mlir.constant(0 : i64) : i89// CHECK: [[t1:%[0-9]*]] = llvm.icmp "ne" %arg0, [[t0]] : i810// CHECK: llvm.return [[t1]] : i111func.func @test_l1_i1(%arg0: !fir.logical<1>) -> i1 {12  %0 = fir.convert %arg0 : (!fir.logical<1>) -> i113  return %0 : i114}15// -----16// CHECK-LABEL: @test_l1_i817// CHECK: [[t0:%[0-9]*]] = llvm.mlir.constant(0 : i64) : i818// CHECK: [[t1:%[0-9]*]] = llvm.icmp "ne" %arg0, [[t0]] : i819// CHECK: [[t2:%[0-9]*]] = llvm.zext [[t1]] : i1 to i820// CHECK: llvm.return [[t2]] : i821func.func @test_l1_i8(%arg0: !fir.logical<1>) -> i8 {22  %0 = fir.convert %arg0 : (!fir.logical<1>) -> i823  return %0 : i824}25// -----26// CHECK-LABEL: @test_l1_i1627// CHECK: [[t0:%[0-9]*]] = llvm.mlir.constant(0 : i64) : i828// CHECK: [[t1:%[0-9]*]] = llvm.icmp "ne" %arg0, [[t0]] : i829// CHECK: [[t2:%[0-9]*]] = llvm.zext [[t1]] : i1 to i1630// CHECK: llvm.return [[t2]] : i1631func.func @test_l1_i16(%arg0: !fir.logical<1>) -> i16 {32  %0 = fir.convert %arg0 : (!fir.logical<1>) -> i1633  return %0 : i1634}35// -----36// CHECK-LABEL: @test_l1_i3237// CHECK: [[t0:%[0-9]*]] = llvm.mlir.constant(0 : i64) : i838// CHECK: [[t1:%[0-9]*]] = llvm.icmp "ne" %arg0, [[t0]] : i839// CHECK: [[t2:%[0-9]*]] = llvm.zext [[t1]] : i1 to i3240// CHECK: llvm.return [[t2]] : i3241func.func @test_l1_i32(%arg0: !fir.logical<1>) -> i32 {42  %0 = fir.convert %arg0 : (!fir.logical<1>) -> i3243  return %0 : i3244}45// -----46// CHECK-LABEL: @test_l1_i6447// CHECK: [[t0:%[0-9]*]] = llvm.mlir.constant(0 : i64) : i848// CHECK: [[t1:%[0-9]*]] = llvm.icmp "ne" %arg0, [[t0]] : i849// CHECK: [[t2:%[0-9]*]] = llvm.zext [[t1]] : i1 to i6450// CHECK: llvm.return [[t2]] : i6451func.func @test_l1_i64(%arg0: !fir.logical<1>) -> i64 {52  %0 = fir.convert %arg0 : (!fir.logical<1>) -> i6453  return %0 : i6454}55// -----56// CHECK-LABEL: @test_l2_i157// CHECK: [[t0:%[0-9]*]] = llvm.mlir.constant(0 : i64) : i1658// CHECK: [[t1:%[0-9]*]] = llvm.icmp "ne" %arg0, [[t0]] : i1659// CHECK: llvm.return [[t1]] : i160func.func @test_l2_i1(%arg0: !fir.logical<2>) -> i1 {61  %0 = fir.convert %arg0 : (!fir.logical<2>) -> i162  return %0 : i163}64// -----65// CHECK-LABEL: @test_l2_i866// CHECK: [[t0:%[0-9]*]] = llvm.mlir.constant(0 : i64) : i1667// CHECK: [[t1:%[0-9]*]] = llvm.icmp "ne" %arg0, [[t0]] : i1668// CHECK: [[t2:%[0-9]*]] = llvm.zext [[t1]] : i1 to i869// CHECK: llvm.return [[t2]] : i870func.func @test_l2_i8(%arg0: !fir.logical<2>) -> i8 {71  %0 = fir.convert %arg0 : (!fir.logical<2>) -> i872  return %0 : i873}74// -----75// CHECK-LABEL: @test_l2_i1676// CHECK: [[t0:%[0-9]*]] = llvm.mlir.constant(0 : i64) : i1677// CHECK: [[t1:%[0-9]*]] = llvm.icmp "ne" %arg0, [[t0]] : i1678// CHECK: [[t2:%[0-9]*]] = llvm.zext [[t1]] : i1 to i1679// CHECK: llvm.return [[t2]] : i1680func.func @test_l2_i16(%arg0: !fir.logical<2>) -> i16 {81  %0 = fir.convert %arg0 : (!fir.logical<2>) -> i1682  return %0 : i1683}84// -----85// CHECK-LABEL: @test_l2_i3286// CHECK: [[t0:%[0-9]*]] = llvm.mlir.constant(0 : i64) : i1687// CHECK: [[t1:%[0-9]*]] = llvm.icmp "ne" %arg0, [[t0]] : i1688// CHECK: [[t2:%[0-9]*]] = llvm.zext [[t1]] : i1 to i3289// CHECK: llvm.return [[t2]] : i3290func.func @test_l2_i32(%arg0: !fir.logical<2>) -> i32 {91  %0 = fir.convert %arg0 : (!fir.logical<2>) -> i3292  return %0 : i3293}94// -----95// CHECK-LABEL: @test_l2_i6496// CHECK: [[t0:%[0-9]*]] = llvm.mlir.constant(0 : i64) : i1697// CHECK: [[t1:%[0-9]*]] = llvm.icmp "ne" %arg0, [[t0]] : i1698// CHECK: [[t2:%[0-9]*]] = llvm.zext [[t1]] : i1 to i6499// CHECK: llvm.return [[t2]] : i64100func.func @test_l2_i64(%arg0: !fir.logical<2>) -> i64 {101  %0 = fir.convert %arg0 : (!fir.logical<2>) -> i64102  return %0 : i64103}104// -----105// CHECK-LABEL: @test_l4_i1106// CHECK: [[t0:%[0-9]*]] = llvm.mlir.constant(0 : i64) : i32107// CHECK: [[t1:%[0-9]*]] = llvm.icmp "ne" %arg0, [[t0]] : i32108// CHECK: llvm.return [[t1]] : i1109func.func @test_l4_i1(%arg0: !fir.logical<4>) -> i1 {110  %0 = fir.convert %arg0 : (!fir.logical<4>) -> i1111  return %0 : i1112}113// -----114// CHECK-LABEL: @test_l4_i8115// CHECK: [[t0:%[0-9]*]] = llvm.mlir.constant(0 : i64) : i32116// CHECK: [[t1:%[0-9]*]] = llvm.icmp "ne" %arg0, [[t0]] : i32117// CHECK: [[t2:%[0-9]*]] = llvm.zext [[t1]] : i1 to i8118// CHECK: llvm.return [[t2]] : i8119func.func @test_l4_i8(%arg0: !fir.logical<4>) -> i8 {120  %0 = fir.convert %arg0 : (!fir.logical<4>) -> i8121  return %0 : i8122}123// -----124// CHECK-LABEL: @test_l4_i16125// CHECK: [[t0:%[0-9]*]] = llvm.mlir.constant(0 : i64) : i32126// CHECK: [[t1:%[0-9]*]] = llvm.icmp "ne" %arg0, [[t0]] : i32127// CHECK: [[t2:%[0-9]*]] = llvm.zext [[t1]] : i1 to i16128// CHECK: llvm.return [[t2]] : i16129func.func @test_l4_i16(%arg0: !fir.logical<4>) -> i16 {130  %0 = fir.convert %arg0 : (!fir.logical<4>) -> i16131  return %0 : i16132}133// -----134// CHECK-LABEL: @test_l4_i32135// CHECK: [[t0:%[0-9]*]] = llvm.mlir.constant(0 : i64) : i32136// CHECK: [[t1:%[0-9]*]] = llvm.icmp "ne" %arg0, [[t0]] : i32137// CHECK: [[t2:%[0-9]*]] = llvm.zext [[t1]] : i1 to i32138// CHECK: llvm.return [[t2]] : i32139func.func @test_l4_i32(%arg0: !fir.logical<4>) -> i32 {140  %0 = fir.convert %arg0 : (!fir.logical<4>) -> i32141  return %0 : i32142}143// -----144// CHECK-LABEL: @test_l4_i64145// CHECK: [[t0:%[0-9]*]] = llvm.mlir.constant(0 : i64) : i32146// CHECK: [[t1:%[0-9]*]] = llvm.icmp "ne" %arg0, [[t0]] : i32147// CHECK: [[t2:%[0-9]*]] = llvm.zext [[t1]] : i1 to i64148// CHECK: llvm.return [[t2]] : i64149func.func @test_l4_i64(%arg0: !fir.logical<4>) -> i64 {150  %0 = fir.convert %arg0 : (!fir.logical<4>) -> i64151  return %0 : i64152}153// -----154// CHECK-LABEL: @test_l8_i1155// CHECK: [[t0:%[0-9]*]] = llvm.mlir.constant(0 : i64) : i64156// CHECK: [[t1:%[0-9]*]] = llvm.icmp "ne" %arg0, [[t0]] : i64157// CHECK: llvm.return [[t1]] : i1158func.func @test_l8_i1(%arg0: !fir.logical<8>) -> i1 {159  %0 = fir.convert %arg0 : (!fir.logical<8>) -> i1160  return %0 : i1161}162// -----163// CHECK-LABEL: @test_l8_i8164// CHECK: [[t0:%[0-9]*]] = llvm.mlir.constant(0 : i64) : i64165// CHECK: [[t1:%[0-9]*]] = llvm.icmp "ne" %arg0, [[t0]] : i64166// CHECK: [[t2:%[0-9]*]] = llvm.zext [[t1]] : i1 to i8167// CHECK: llvm.return [[t2]] : i8168func.func @test_l8_i8(%arg0: !fir.logical<8>) -> i8 {169  %0 = fir.convert %arg0 : (!fir.logical<8>) -> i8170  return %0 : i8171}172// -----173// CHECK-LABEL: @test_l8_i16174// CHECK: [[t0:%[0-9]*]] = llvm.mlir.constant(0 : i64) : i64175// CHECK: [[t1:%[0-9]*]] = llvm.icmp "ne" %arg0, [[t0]] : i64176// CHECK: [[t2:%[0-9]*]] = llvm.zext [[t1]] : i1 to i16177// CHECK: llvm.return [[t2]] : i16178func.func @test_l8_i16(%arg0: !fir.logical<8>) -> i16 {179  %0 = fir.convert %arg0 : (!fir.logical<8>) -> i16180  return %0 : i16181}182// -----183// CHECK-LABEL: @test_l8_i32184// CHECK: [[t0:%[0-9]*]] = llvm.mlir.constant(0 : i64) : i64185// CHECK: [[t1:%[0-9]*]] = llvm.icmp "ne" %arg0, [[t0]] : i64186// CHECK: [[t2:%[0-9]*]] = llvm.zext [[t1]] : i1 to i32187// CHECK: llvm.return [[t2]] : i32188func.func @test_l8_i32(%arg0: !fir.logical<8>) -> i32 {189  %0 = fir.convert %arg0 : (!fir.logical<8>) -> i32190  return %0 : i32191}192// -----193// CHECK-LABEL: @test_l8_i64194// CHECK: [[t0:%[0-9]*]] = llvm.mlir.constant(0 : i64) : i64195// CHECK: [[t1:%[0-9]*]] = llvm.icmp "ne" %arg0, [[t0]] : i64196// CHECK: [[t2:%[0-9]*]] = llvm.zext [[t1]] : i1 to i64197// CHECK: llvm.return [[t2]] : i64198func.func @test_l8_i64(%arg0: !fir.logical<8>) -> i64 {199  %0 = fir.convert %arg0 : (!fir.logical<8>) -> i64200  return %0 : i64201}202// -----203// CHECK-LABEL: @test_i1_l1204// CHECK: [[t0:%[0-9]*]] = llvm.zext %arg0 : i1 to i8205// CHECK: llvm.return [[t0]] : i8206func.func @test_i1_l1(%arg0: i1) -> !fir.logical<1> {207  %0 = fir.convert %arg0 : (i1) -> !fir.logical<1>208  return %0 : !fir.logical<1>209}210// -----211// CHECK-LABEL: @test_i1_l2212// CHECK: [[t0:%[0-9]*]] = llvm.zext %arg0 : i1 to i16213// CHECK: llvm.return [[t0]] : i16214func.func @test_i1_l2(%arg0: i1) -> !fir.logical<2> {215  %0 = fir.convert %arg0 : (i1) -> !fir.logical<2>216  return %0 : !fir.logical<2>217}218// -----219// CHECK-LABEL: @test_i1_l4220// CHECK: [[t0:%[0-9]*]] = llvm.zext %arg0 : i1 to i32221// CHECK: llvm.return [[t0]] : i32222func.func @test_i1_l4(%arg0: i1) -> !fir.logical<4> {223  %0 = fir.convert %arg0 : (i1) -> !fir.logical<4>224  return %0 : !fir.logical<4>225}226// -----227// CHECK-LABEL: @test_i1_l8228// CHECK: [[t0:%[0-9]*]] = llvm.zext %arg0 : i1 to i64229// CHECK: llvm.return [[t0]] : i64230func.func @test_i1_l8(%arg0: i1) -> !fir.logical<8> {231  %0 = fir.convert %arg0 : (i1) -> !fir.logical<8>232  return %0 : !fir.logical<8>233}234// -----235// CHECK-LABEL: @test_i8_l1236// CHECK: [[t0:%[0-9]*]] = llvm.mlir.constant(0 : i64) : i8237// CHECK: [[t1:%[0-9]*]] = llvm.icmp "ne" %arg0, [[t0]] : i8238// CHECK: [[t2:%[0-9]*]] = llvm.zext [[t1]] : i1 to i8239// CHECK: llvm.return [[t2]] : i8240func.func @test_i8_l1(%arg0: i8) -> !fir.logical<1> {241  %0 = fir.convert %arg0 : (i8) -> !fir.logical<1>242  return %0 : !fir.logical<1>243}244// -----245// CHECK-LABEL: @test_i8_l2246// CHECK: [[t0:%[0-9]*]] = llvm.mlir.constant(0 : i64) : i8247// CHECK: [[t1:%[0-9]*]] = llvm.icmp "ne" %arg0, [[t0]] : i8248// CHECK: [[t2:%[0-9]*]] = llvm.zext [[t1]] : i1 to i16249// CHECK: llvm.return [[t2]] : i16250func.func @test_i8_l2(%arg0: i8) -> !fir.logical<2> {251  %0 = fir.convert %arg0 : (i8) -> !fir.logical<2>252  return %0 : !fir.logical<2>253}254// -----255// CHECK-LABEL: @test_i8_l4256// CHECK: [[t0:%[0-9]*]] = llvm.mlir.constant(0 : i64) : i8257// CHECK: [[t1:%[0-9]*]] = llvm.icmp "ne" %arg0, [[t0]] : i8258// CHECK: [[t2:%[0-9]*]] = llvm.zext [[t1]] : i1 to i32259// CHECK: llvm.return [[t2]] : i32260func.func @test_i8_l4(%arg0: i8) -> !fir.logical<4> {261  %0 = fir.convert %arg0 : (i8) -> !fir.logical<4>262  return %0 : !fir.logical<4>263}264// -----265// CHECK-LABEL: @test_i8_l8266// CHECK: [[t0:%[0-9]*]] = llvm.mlir.constant(0 : i64) : i8267// CHECK: [[t1:%[0-9]*]] = llvm.icmp "ne" %arg0, [[t0]] : i8268// CHECK: [[t2:%[0-9]*]] = llvm.zext [[t1]] : i1 to i64269// CHECK: llvm.return [[t2]] : i64270func.func @test_i8_l8(%arg0: i8) -> !fir.logical<8> {271  %0 = fir.convert %arg0 : (i8) -> !fir.logical<8>272  return %0 : !fir.logical<8>273}274// -----275// CHECK-LABEL: @test_i16_l1276// CHECK: [[t0:%[0-9]*]] = llvm.mlir.constant(0 : i64) : i16277// CHECK: [[t1:%[0-9]*]] = llvm.icmp "ne" %arg0, [[t0]] : i16278// CHECK: [[t2:%[0-9]*]] = llvm.zext [[t1]] : i1 to i8279// CHECK: llvm.return [[t2]] : i8280func.func @test_i16_l1(%arg0: i16) -> !fir.logical<1> {281  %0 = fir.convert %arg0 : (i16) -> !fir.logical<1>282  return %0 : !fir.logical<1>283}284// -----285// CHECK-LABEL: @test_i16_l2286// CHECK: [[t0:%[0-9]*]] = llvm.mlir.constant(0 : i64) : i16287// CHECK: [[t1:%[0-9]*]] = llvm.icmp "ne" %arg0, [[t0]] : i16288// CHECK: [[t2:%[0-9]*]] = llvm.zext [[t1]] : i1 to i16289// CHECK: llvm.return [[t2]] : i16290func.func @test_i16_l2(%arg0: i16) -> !fir.logical<2> {291  %0 = fir.convert %arg0 : (i16) -> !fir.logical<2>292  return %0 : !fir.logical<2>293}294// -----295// CHECK-LABEL: @test_i16_l4296// CHECK: [[t0:%[0-9]*]] = llvm.mlir.constant(0 : i64) : i16297// CHECK: [[t1:%[0-9]*]] = llvm.icmp "ne" %arg0, [[t0]] : i16298// CHECK: [[t2:%[0-9]*]] = llvm.zext [[t1]] : i1 to i32299// CHECK: llvm.return [[t2]] : i32300func.func @test_i16_l4(%arg0: i16) -> !fir.logical<4> {301  %0 = fir.convert %arg0 : (i16) -> !fir.logical<4>302  return %0 : !fir.logical<4>303}304// -----305// CHECK-LABEL: @test_i16_l8306// CHECK: [[t0:%[0-9]*]] = llvm.mlir.constant(0 : i64) : i16307// CHECK: [[t1:%[0-9]*]] = llvm.icmp "ne" %arg0, [[t0]] : i16308// CHECK: [[t2:%[0-9]*]] = llvm.zext [[t1]] : i1 to i64309// CHECK: llvm.return [[t2]] : i64310func.func @test_i16_l8(%arg0: i16) -> !fir.logical<8> {311  %0 = fir.convert %arg0 : (i16) -> !fir.logical<8>312  return %0 : !fir.logical<8>313}314// -----315// CHECK-LABEL: @test_i32_l1316// CHECK: [[t0:%[0-9]*]] = llvm.mlir.constant(0 : i64) : i32317// CHECK: [[t1:%[0-9]*]] = llvm.icmp "ne" %arg0, [[t0]] : i32318// CHECK: [[t2:%[0-9]*]] = llvm.zext [[t1]] : i1 to i8319// CHECK: llvm.return [[t2]] : i8320func.func @test_i32_l1(%arg0: i32) -> !fir.logical<1> {321  %0 = fir.convert %arg0 : (i32) -> !fir.logical<1>322  return %0 : !fir.logical<1>323}324// -----325// CHECK-LABEL: @test_i32_l2326// CHECK: [[t0:%[0-9]*]] = llvm.mlir.constant(0 : i64) : i32327// CHECK: [[t1:%[0-9]*]] = llvm.icmp "ne" %arg0, [[t0]] : i32328// CHECK: [[t2:%[0-9]*]] = llvm.zext [[t1]] : i1 to i16329// CHECK: llvm.return [[t2]] : i16330func.func @test_i32_l2(%arg0: i32) -> !fir.logical<2> {331  %0 = fir.convert %arg0 : (i32) -> !fir.logical<2>332  return %0 : !fir.logical<2>333}334// -----335// CHECK-LABEL: @test_i32_l4336// CHECK: [[t0:%[0-9]*]] = llvm.mlir.constant(0 : i64) : i32337// CHECK: [[t1:%[0-9]*]] = llvm.icmp "ne" %arg0, [[t0]] : i32338// CHECK: [[t2:%[0-9]*]] = llvm.zext [[t1]] : i1 to i32339// CHECK: llvm.return [[t2]] : i32340func.func @test_i32_l4(%arg0: i32) -> !fir.logical<4> {341  %0 = fir.convert %arg0 : (i32) -> !fir.logical<4>342  return %0 : !fir.logical<4>343}344// -----345// CHECK-LABEL: @test_i32_l8346// CHECK: [[t0:%[0-9]*]] = llvm.mlir.constant(0 : i64) : i32347// CHECK: [[t1:%[0-9]*]] = llvm.icmp "ne" %arg0, [[t0]] : i32348// CHECK: [[t2:%[0-9]*]] = llvm.zext [[t1]] : i1 to i64349// CHECK: llvm.return [[t2]] : i64350func.func @test_i32_l8(%arg0: i32) -> !fir.logical<8> {351  %0 = fir.convert %arg0 : (i32) -> !fir.logical<8>352  return %0 : !fir.logical<8>353}354// -----355// CHECK-LABEL: @test_i64_l1356// CHECK: [[t0:%[0-9]*]] = llvm.mlir.constant(0 : i64) : i64357// CHECK: [[t1:%[0-9]*]] = llvm.icmp "ne" %arg0, [[t0]] : i64358// CHECK: [[t2:%[0-9]*]] = llvm.zext [[t1]] : i1 to i8359// CHECK: llvm.return [[t2]] : i8360func.func @test_i64_l1(%arg0: i64) -> !fir.logical<1> {361  %0 = fir.convert %arg0 : (i64) -> !fir.logical<1>362  return %0 : !fir.logical<1>363}364// -----365// CHECK-LABEL: @test_i64_l2366// CHECK: [[t0:%[0-9]*]] = llvm.mlir.constant(0 : i64) : i64367// CHECK: [[t1:%[0-9]*]] = llvm.icmp "ne" %arg0, [[t0]] : i64368// CHECK: [[t2:%[0-9]*]] = llvm.zext [[t1]] : i1 to i16369// CHECK: llvm.return [[t2]] : i16370func.func @test_i64_l2(%arg0: i64) -> !fir.logical<2> {371  %0 = fir.convert %arg0 : (i64) -> !fir.logical<2>372  return %0 : !fir.logical<2>373}374// -----375// CHECK-LABEL: @test_i64_l4376// CHECK: [[t0:%[0-9]*]] = llvm.mlir.constant(0 : i64) : i64377// CHECK: [[t1:%[0-9]*]] = llvm.icmp "ne" %arg0, [[t0]] : i64378// CHECK: [[t2:%[0-9]*]] = llvm.zext [[t1]] : i1 to i32379// CHECK: llvm.return [[t2]] : i32380func.func @test_i64_l4(%arg0: i64) -> !fir.logical<4> {381  %0 = fir.convert %arg0 : (i64) -> !fir.logical<4>382  return %0 : !fir.logical<4>383}384// -----385// CHECK-LABEL: @test_i64_l8386// CHECK: [[t0:%[0-9]*]] = llvm.mlir.constant(0 : i64) : i64387// CHECK: [[t1:%[0-9]*]] = llvm.icmp "ne" %arg0, [[t0]] : i64388// CHECK: [[t2:%[0-9]*]] = llvm.zext [[t1]] : i1 to i64389// CHECK: llvm.return [[t2]] : i64390func.func @test_i64_l8(%arg0: i64) -> !fir.logical<8> {391  %0 = fir.convert %arg0 : (i64) -> !fir.logical<8>392  return %0 : !fir.logical<8>393}394// -----395// CHECK-LABEL: @test_l1_l2396// CHECK: [[t0:%[0-9]*]] = llvm.mlir.constant(0 : i64) : i8397// CHECK: [[t1:%[0-9]*]] = llvm.icmp "ne" %arg0, [[t0]] : i8398// CHECK: [[t2:%[0-9]*]] = llvm.zext [[t1]] : i1 to i16399// CHECK: llvm.return [[t2]] : i16400func.func @test_l1_l2(%arg0: !fir.logical<1>) -> !fir.logical<2> {401  %0 = fir.convert %arg0 : (!fir.logical<1>) -> !fir.logical<2>402  return %0 : !fir.logical<2>403}404// -----405// CHECK-LABEL: @test_l1_l4406// CHECK: [[t0:%[0-9]*]] = llvm.mlir.constant(0 : i64) : i8407// CHECK: [[t1:%[0-9]*]] = llvm.icmp "ne" %arg0, [[t0]] : i8408// CHECK: [[t2:%[0-9]*]] = llvm.zext [[t1]] : i1 to i32409// CHECK: llvm.return [[t2]] : i32410func.func @test_l1_l4(%arg0: !fir.logical<1>) -> !fir.logical<4> {411  %0 = fir.convert %arg0 : (!fir.logical<1>) -> !fir.logical<4>412  return %0 : !fir.logical<4>413}414// -----415// CHECK-LABEL: @test_l1_l8416// CHECK: [[t0:%[0-9]*]] = llvm.mlir.constant(0 : i64) : i8417// CHECK: [[t1:%[0-9]*]] = llvm.icmp "ne" %arg0, [[t0]] : i8418// CHECK: [[t2:%[0-9]*]] = llvm.zext [[t1]] : i1 to i64419// CHECK: llvm.return [[t2]] : i64420func.func @test_l1_l8(%arg0: !fir.logical<1>) -> !fir.logical<8> {421  %0 = fir.convert %arg0 : (!fir.logical<1>) -> !fir.logical<8>422  return %0 : !fir.logical<8>423}424// -----425// CHECK-LABEL: @test_l2_l1426// CHECK: [[t0:%[0-9]*]] = llvm.mlir.constant(0 : i64) : i16427// CHECK: [[t1:%[0-9]*]] = llvm.icmp "ne" %arg0, [[t0]] : i16428// CHECK: [[t2:%[0-9]*]] = llvm.zext [[t1]] : i1 to i8429// CHECK: llvm.return [[t2]] : i8430func.func @test_l2_l1(%arg0: !fir.logical<2>) -> !fir.logical<1> {431  %0 = fir.convert %arg0 : (!fir.logical<2>) -> !fir.logical<1>432  return %0 : !fir.logical<1>433}434// -----435// CHECK-LABEL: @test_l2_l4436// CHECK: [[t0:%[0-9]*]] = llvm.mlir.constant(0 : i64) : i16437// CHECK: [[t1:%[0-9]*]] = llvm.icmp "ne" %arg0, [[t0]] : i16438// CHECK: [[t2:%[0-9]*]] = llvm.zext [[t1]] : i1 to i32439// CHECK: llvm.return [[t2]] : i32440func.func @test_l2_l4(%arg0: !fir.logical<2>) -> !fir.logical<4> {441  %0 = fir.convert %arg0 : (!fir.logical<2>) -> !fir.logical<4>442  return %0 : !fir.logical<4>443}444// -----445// CHECK-LABEL: @test_l2_l8446// CHECK: [[t0:%[0-9]*]] = llvm.mlir.constant(0 : i64) : i16447// CHECK: [[t1:%[0-9]*]] = llvm.icmp "ne" %arg0, [[t0]] : i16448// CHECK: [[t2:%[0-9]*]] = llvm.zext [[t1]] : i1 to i64449// CHECK: llvm.return [[t2]] : i64450func.func @test_l2_l8(%arg0: !fir.logical<2>) -> !fir.logical<8> {451  %0 = fir.convert %arg0 : (!fir.logical<2>) -> !fir.logical<8>452  return %0 : !fir.logical<8>453}454// -----455// CHECK-LABEL: @test_l4_l1456// CHECK: [[t0:%[0-9]*]] = llvm.mlir.constant(0 : i64) : i32457// CHECK: [[t1:%[0-9]*]] = llvm.icmp "ne" %arg0, [[t0]] : i32458// CHECK: [[t2:%[0-9]*]] = llvm.zext [[t1]] : i1 to i8459// CHECK: llvm.return [[t2]] : i8460func.func @test_l4_l1(%arg0: !fir.logical<4>) -> !fir.logical<1> {461  %0 = fir.convert %arg0 : (!fir.logical<4>) -> !fir.logical<1>462  return %0 : !fir.logical<1>463}464// -----465// CHECK-LABEL: @test_l4_l2466// CHECK: [[t0:%[0-9]*]] = llvm.mlir.constant(0 : i64) : i32467// CHECK: [[t1:%[0-9]*]] = llvm.icmp "ne" %arg0, [[t0]] : i32468// CHECK: [[t2:%[0-9]*]] = llvm.zext [[t1]] : i1 to i16469// CHECK: llvm.return [[t2]] : i16470func.func @test_l4_l2(%arg0: !fir.logical<4>) -> !fir.logical<2> {471  %0 = fir.convert %arg0 : (!fir.logical<4>) -> !fir.logical<2>472  return %0 : !fir.logical<2>473}474// -----475// CHECK-LABEL: @test_l4_l8476// CHECK: [[t0:%[0-9]*]] = llvm.mlir.constant(0 : i64) : i32477// CHECK: [[t1:%[0-9]*]] = llvm.icmp "ne" %arg0, [[t0]] : i32478// CHECK: [[t2:%[0-9]*]] = llvm.zext [[t1]] : i1 to i64479// CHECK: llvm.return [[t2]] : i64480func.func @test_l4_l8(%arg0: !fir.logical<4>) -> !fir.logical<8> {481  %0 = fir.convert %arg0 : (!fir.logical<4>) -> !fir.logical<8>482  return %0 : !fir.logical<8>483}484// -----485// CHECK-LABEL: @test_l8_l1486// CHECK: [[t0:%[0-9]*]] = llvm.mlir.constant(0 : i64) : i64487// CHECK: [[t1:%[0-9]*]] = llvm.icmp "ne" %arg0, [[t0]] : i64488// CHECK: [[t2:%[0-9]*]] = llvm.zext [[t1]] : i1 to i8489// CHECK: llvm.return [[t2]] : i8490func.func @test_l8_l1(%arg0: !fir.logical<8>) -> !fir.logical<1> {491  %0 = fir.convert %arg0 : (!fir.logical<8>) -> !fir.logical<1>492  return %0 : !fir.logical<1>493}494// -----495// CHECK-LABEL: @test_l8_l2496// CHECK: [[t0:%[0-9]*]] = llvm.mlir.constant(0 : i64) : i64497// CHECK: [[t1:%[0-9]*]] = llvm.icmp "ne" %arg0, [[t0]] : i64498// CHECK: [[t2:%[0-9]*]] = llvm.zext [[t1]] : i1 to i16499// CHECK: llvm.return [[t2]] : i16500func.func @test_l8_l2(%arg0: !fir.logical<8>) -> !fir.logical<2> {501  %0 = fir.convert %arg0 : (!fir.logical<8>) -> !fir.logical<2>502  return %0 : !fir.logical<2>503}504// -----505// CHECK-LABEL: @test_l8_l4506// CHECK: [[t0:%[0-9]*]] = llvm.mlir.constant(0 : i64) : i64507// CHECK: [[t1:%[0-9]*]] = llvm.icmp "ne" %arg0, [[t0]] : i64508// CHECK: [[t2:%[0-9]*]] = llvm.zext [[t1]] : i1 to i32509// CHECK: llvm.return [[t2]] : i32510func.func @test_l8_l4(%arg0: !fir.logical<8>) -> !fir.logical<4> {511  %0 = fir.convert %arg0 : (!fir.logical<8>) -> !fir.logical<4>512  return %0 : !fir.logical<4>513}514