cleanup(compiler/lowlfhe): Remove useless LowLFHE ops and types

Some of these operators/types could be usefull but they are not yet use on the compiler pipeline it's preferable to remove them, and reintroduce if needed.
This commit is contained in:
Quentin Bourgerie
2021-11-25 16:24:57 +01:00
parent ddca6840f1
commit b1e7a66b09
4 changed files with 77 additions and 532 deletions

View File

@@ -45,60 +45,6 @@ func @bootstrap_lwe(%arg0: !LowLFHE.lwe_ciphertext<2048,7>, %arg1: !LowLFHE.glwe
return %1: !LowLFHE.lwe_ciphertext<2048,7>
}
// CHECK-LABEL: func @decrypt_glwe(%arg0: !LowLFHE.glwe_secret_key, %arg1: !LowLFHE.glwe_ciphertext) -> !LowLFHE.plaintext_list
func @decrypt_glwe(%arg0: !LowLFHE.glwe_secret_key, %arg1: !LowLFHE.glwe_ciphertext) -> !LowLFHE.plaintext_list {
// CHECK-NEXT: %[[V1:.*]] = "LowLFHE.decrypt_glwe"(%arg0, %arg1) : (!LowLFHE.glwe_secret_key, !LowLFHE.glwe_ciphertext) -> !LowLFHE.plaintext_list
// CHECK-NEXT: return %[[V1]] : !LowLFHE.plaintext_list
%1 = "LowLFHE.decrypt_glwe"(%arg0, %arg1): (!LowLFHE.glwe_secret_key, !LowLFHE.glwe_ciphertext) -> (!LowLFHE.plaintext_list)
return %1: !LowLFHE.plaintext_list
}
// CHECK-LABEL: func @decrypt_lwe(%arg0: !LowLFHE.lwe_secret_key, %arg1: !LowLFHE.lwe_ciphertext<2048,7>) -> !LowLFHE.plaintext<6>
func @decrypt_lwe(%arg0: !LowLFHE.lwe_secret_key, %arg1: !LowLFHE.lwe_ciphertext<2048,7>) -> !LowLFHE.plaintext<6> {
// CHECK-NEXT: %[[V1:.*]] = "LowLFHE.decrypt_lwe"(%arg0, %arg1) : (!LowLFHE.lwe_secret_key, !LowLFHE.lwe_ciphertext<2048,7>) -> !LowLFHE.plaintext<6>
// CHECK-NEXT: return %[[V1]] : !LowLFHE.plaintext<6>
%1 = "LowLFHE.decrypt_lwe"(%arg0, %arg1): (!LowLFHE.lwe_secret_key, !LowLFHE.lwe_ciphertext<2048,7>) -> (!LowLFHE.plaintext<6>)
return %1: !LowLFHE.plaintext<6>
}
// CHECK-LABEL: func @encrypt_glwe(%arg0: !LowLFHE.glwe_secret_key, %arg1: !LowLFHE.plaintext_list, %arg2: !LowLFHE.enc_rand_gen, %arg3: !LowLFHE.variance) -> !LowLFHE.glwe_ciphertext
func @encrypt_glwe(%arg0: !LowLFHE.glwe_secret_key, %arg1: !LowLFHE.plaintext_list, %arg2: !LowLFHE.enc_rand_gen, %arg3: !LowLFHE.variance) -> !LowLFHE.glwe_ciphertext {
// CHECK-NEXT: %[[V1:.*]] = "LowLFHE.encrypt_glwe"(%arg0, %arg1, %arg2, %arg3) : (!LowLFHE.glwe_secret_key, !LowLFHE.plaintext_list, !LowLFHE.enc_rand_gen, !LowLFHE.variance) -> !LowLFHE.glwe_ciphertext
// CHECK-NEXT: return %[[V1]] : !LowLFHE.glwe_ciphertext
%1 = "LowLFHE.encrypt_glwe"(%arg0, %arg1, %arg2, %arg3): (!LowLFHE.glwe_secret_key, !LowLFHE.plaintext_list, !LowLFHE.enc_rand_gen, !LowLFHE.variance) -> (!LowLFHE.glwe_ciphertext)
return %1: !LowLFHE.glwe_ciphertext
}
// CHECK-LABEL: func @encrypt_lwe(%arg0: !LowLFHE.lwe_secret_key, %arg1: !LowLFHE.plaintext<6>, %arg2: !LowLFHE.enc_rand_gen, %arg3: !LowLFHE.variance) -> !LowLFHE.lwe_ciphertext<2048,7>
func @encrypt_lwe(%arg0: !LowLFHE.lwe_secret_key, %arg1: !LowLFHE.plaintext<6>, %arg2: !LowLFHE.enc_rand_gen, %arg3: !LowLFHE.variance) -> !LowLFHE.lwe_ciphertext<2048,7> {
// CHECK-NEXT: %[[V1:.*]] = "LowLFHE.encrypt_lwe"(%arg0, %arg1, %arg2, %arg3) : (!LowLFHE.lwe_secret_key, !LowLFHE.plaintext<6>, !LowLFHE.enc_rand_gen, !LowLFHE.variance) -> !LowLFHE.lwe_ciphertext<2048,7>
// CHECK-NEXT: return %[[V1]] : !LowLFHE.lwe_ciphertext<2048,7>
%1 = "LowLFHE.encrypt_lwe"(%arg0, %arg1, %arg2, %arg3): (!LowLFHE.lwe_secret_key, !LowLFHE.plaintext<6>, !LowLFHE.enc_rand_gen, !LowLFHE.variance) -> (!LowLFHE.lwe_ciphertext<2048,7>)
return %1: !LowLFHE.lwe_ciphertext<2048,7>
}
// CHECK-LABEL: func @get_plaintext_list_element(%arg0: !LowLFHE.plaintext_list, %arg1: index) -> i7
func @get_plaintext_list_element(%arg0: !LowLFHE.plaintext_list, %arg1: index) -> i7 {
// CHECK-NEXT: %[[V1:.*]] = "LowLFHE.get_plaintext_list_element"(%arg0, %arg1) : (!LowLFHE.plaintext_list, index) -> i7
// CHECK-NEXT: return %[[V1]] : i7
%1 = "LowLFHE.get_plaintext_list_element"(%arg0, %arg1): (!LowLFHE.plaintext_list, index) -> i7
return %1: i7
}
// CHECK-LABEL: func @set_plaintext_list_element(%arg0: !LowLFHE.plaintext_list, %arg1: index, %arg2: i7)
func @set_plaintext_list_element(%arg0: !LowLFHE.plaintext_list, %arg1: index, %arg2: i7){
// CHECK-NEXT: "LowLFHE.set_plaintext_list_element"(%arg0, %arg1, %arg2) : (!LowLFHE.plaintext_list, index, i7) -> ()
// CHECK-NEXT: return
"LowLFHE.set_plaintext_list_element"(%arg0, %arg1, %arg2): (!LowLFHE.plaintext_list, index, i7) -> ()
return
}
// CHECK-LABEL: func @keyswitch_lwe(%arg0: !LowLFHE.lwe_ciphertext<2048,7>) -> !LowLFHE.lwe_ciphertext<2048,7>
func @keyswitch_lwe(%arg0: !LowLFHE.lwe_ciphertext<2048,7>) -> !LowLFHE.lwe_ciphertext<2048,7> {
// CHECK-NEXT: %[[V1:.*]] = "LowLFHE.keyswitch_lwe"(%arg0) {baseLog = 2 : i32, inputLweSize = 1 : i32, level = 3 : i32, outputLweSize = 1 : i32} : (!LowLFHE.lwe_ciphertext<2048,7>) -> !LowLFHE.lwe_ciphertext<2048,7>
@@ -108,60 +54,6 @@ func @keyswitch_lwe(%arg0: !LowLFHE.lwe_ciphertext<2048,7>) -> !LowLFHE.lwe_ciph
return %1: !LowLFHE.lwe_ciphertext<2048,7>
}
// CHECK-LABEL: func @fill_glwe_secret_key(%arg0: !LowLFHE.glwe_secret_key, %arg1: !LowLFHE.secret_rand_gen)
func @fill_glwe_secret_key(%arg0: !LowLFHE.glwe_secret_key, %arg1: !LowLFHE.secret_rand_gen) {
// CHECK-NEXT: "LowLFHE.fill_glwe_secret_key"(%arg0, %arg1) : (!LowLFHE.glwe_secret_key, !LowLFHE.secret_rand_gen) -> ()
// CHECK-NEXT: return
"LowLFHE.fill_glwe_secret_key"(%arg0, %arg1): (!LowLFHE.glwe_secret_key, !LowLFHE.secret_rand_gen) -> ()
return
}
// CHECK-LABEL: func @fill_lwe_secret_key(%arg0: !LowLFHE.lwe_secret_key, %arg1: !LowLFHE.secret_rand_gen)
func @fill_lwe_secret_key(%arg0: !LowLFHE.lwe_secret_key, %arg1: !LowLFHE.secret_rand_gen) {
// CHECK-NEXT: "LowLFHE.fill_lwe_secret_key"(%arg0, %arg1) : (!LowLFHE.lwe_secret_key, !LowLFHE.secret_rand_gen) -> ()
// CHECK-NEXT: return
"LowLFHE.fill_lwe_secret_key"(%arg0, %arg1): (!LowLFHE.lwe_secret_key, !LowLFHE.secret_rand_gen) -> ()
return
}
// CHECK-LABEL: func @fill_lwe_bootstrap_key(%arg0: !LowLFHE.lwe_bootstrap_key, %arg1: !LowLFHE.lwe_secret_key, %arg2: !LowLFHE.glwe_secret_key, %arg3: !LowLFHE.enc_rand_gen, %arg4: !LowLFHE.variance)
func @fill_lwe_bootstrap_key(%arg0: !LowLFHE.lwe_bootstrap_key, %arg1: !LowLFHE.lwe_secret_key, %arg2: !LowLFHE.glwe_secret_key, %arg3: !LowLFHE.enc_rand_gen, %arg4: !LowLFHE.variance) {
// CHECK-NEXT: "LowLFHE.fill_lwe_bootstrap_key"(%arg0, %arg1, %arg2, %arg3, %arg4) : (!LowLFHE.lwe_bootstrap_key, !LowLFHE.lwe_secret_key, !LowLFHE.glwe_secret_key, !LowLFHE.enc_rand_gen, !LowLFHE.variance) -> ()
// CHECK-NEXT: return
"LowLFHE.fill_lwe_bootstrap_key"(%arg0, %arg1, %arg2, %arg3, %arg4): (!LowLFHE.lwe_bootstrap_key, !LowLFHE.lwe_secret_key, !LowLFHE.glwe_secret_key, !LowLFHE.enc_rand_gen, !LowLFHE.variance) -> ()
return
}
// CHECK-LABEL: func @fill_lwe_keyswitch_key(%arg0: !LowLFHE.lwe_key_switch_key, %arg1: !LowLFHE.lwe_secret_key, %arg2: !LowLFHE.lwe_secret_key, %arg3: !LowLFHE.enc_rand_gen, %arg4: !LowLFHE.variance)
func @fill_lwe_keyswitch_key(%arg0: !LowLFHE.lwe_key_switch_key, %arg1: !LowLFHE.lwe_secret_key, %arg2: !LowLFHE.lwe_secret_key, %arg3: !LowLFHE.enc_rand_gen, %arg4: !LowLFHE.variance) {
// CHECK-NEXT: "LowLFHE.fill_lwe_keyswitch_key"(%arg0, %arg1, %arg2, %arg3, %arg4) : (!LowLFHE.lwe_key_switch_key, !LowLFHE.lwe_secret_key, !LowLFHE.lwe_secret_key, !LowLFHE.enc_rand_gen, !LowLFHE.variance) -> ()
// CHECK-NEXT: return
"LowLFHE.fill_lwe_keyswitch_key"(%arg0, %arg1, %arg2, %arg3, %arg4): (!LowLFHE.lwe_key_switch_key, !LowLFHE.lwe_secret_key, !LowLFHE.lwe_secret_key, !LowLFHE.enc_rand_gen, !LowLFHE.variance) -> ()
return
}
// CHECK-LABEL: func @fill_plaintext_list_with_expansion(%arg0: !LowLFHE.plaintext_list, %arg1: !LowLFHE.foreign_plaintext_list)
func @fill_plaintext_list_with_expansion(%arg0: !LowLFHE.plaintext_list, %arg1: !LowLFHE.foreign_plaintext_list) {
// CHECK-NEXT: "LowLFHE.fill_plaintext_list_with_expansion"(%arg0, %arg1) : (!LowLFHE.plaintext_list, !LowLFHE.foreign_plaintext_list) -> ()
// CHECK-NEXT: return
"LowLFHE.fill_plaintext_list_with_expansion"(%arg0, %arg1): (!LowLFHE.plaintext_list, !LowLFHE.foreign_plaintext_list) -> ()
return
}
// CHECK-LABEL: func @encode_cleartext(%arg0: !LowLFHE.cleartext<6>) -> !LowLFHE.plaintext<6>
func @encode_cleartext(%arg0: !LowLFHE.cleartext<6>) -> (!LowLFHE.plaintext<6>) {
// CHECK-NEXT: %[[V1:.*]] = "LowLFHE.encode_cleartext"(%arg0) : (!LowLFHE.cleartext<6>) -> !LowLFHE.plaintext<6>
// CHECK-NEXT: return %[[V1]] : !LowLFHE.plaintext<6>
%0 = "LowLFHE.encode_cleartext"(%arg0): (!LowLFHE.cleartext<6>) -> !LowLFHE.plaintext<6>
return %0: !LowLFHE.plaintext<6>
}
// CHECK-LABEL: func @encode_int(%arg0: i6) -> !LowLFHE.plaintext<6>
func @encode_int(%arg0: i6) -> (!LowLFHE.plaintext<6>) {
// CHECK-NEXT: %[[V1:.*]] = "LowLFHE.encode_int"(%arg0) : (i6) -> !LowLFHE.plaintext<6>
@@ -171,14 +63,6 @@ func @encode_int(%arg0: i6) -> (!LowLFHE.plaintext<6>) {
return %0: !LowLFHE.plaintext<6>
}
// CHECK-LABEL: func @const_cleartext() -> !LowLFHE.cleartext<8>
func @const_cleartext() -> (!LowLFHE.cleartext<8>) {
// CHECK-NEXT: %[[V1:.*]] = "LowLFHE.const_cleartext"() {value = 1 : i8} : () -> !LowLFHE.cleartext<8>
// CHECK-NEXT: return %[[V1]] : !LowLFHE.cleartext<8>
%0 = "LowLFHE.const_cleartext"() {value = 1 : i8} : () -> !LowLFHE.cleartext<8>
return %0: !LowLFHE.cleartext<8>
}
// CHECK-LABEL: func @int_to_cleartext() -> !LowLFHE.cleartext<6>
func @int_to_cleartext() -> !LowLFHE.cleartext<6> {
// CHECK-NEXT: %[[V0:.*]] = arith.constant 5 : i6

View File

@@ -1,16 +1,5 @@
// RUN: zamacompiler --action=roundtrip %s 2>&1| FileCheck %s
// CHECK-LABEL: func @type_enc_rand_gen(%arg0: !LowLFHE.enc_rand_gen) -> !LowLFHE.enc_rand_gen
func @type_enc_rand_gen(%arg0: !LowLFHE.enc_rand_gen) -> !LowLFHE.enc_rand_gen {
// CHECK-NEXT: return %arg0 : !LowLFHE.enc_rand_gen
return %arg0: !LowLFHE.enc_rand_gen
}
// CHECK-LABEL: func @type_secret_rand_gen(%arg0: !LowLFHE.secret_rand_gen) -> !LowLFHE.secret_rand_gen
func @type_secret_rand_gen(%arg0: !LowLFHE.secret_rand_gen) -> !LowLFHE.secret_rand_gen {
// CHECK-NEXT: return %arg0 : !LowLFHE.secret_rand_gen
return %arg0: !LowLFHE.secret_rand_gen
}
// CHECK-LABEL: func @type_plaintext(%arg0: !LowLFHE.plaintext<7>) -> !LowLFHE.plaintext<7>
func @type_plaintext(%arg0: !LowLFHE.plaintext<7>) -> !LowLFHE.plaintext<7> {
@@ -48,60 +37,6 @@ func @type_lwe_bootstrap_key(%arg0: !LowLFHE.lwe_bootstrap_key) -> !LowLFHE.lwe_
return %arg0: !LowLFHE.lwe_bootstrap_key
}
// CHECK-LABEL: func @type_lwe_secret_key(%arg0: !LowLFHE.lwe_secret_key) -> !LowLFHE.lwe_secret_key
func @type_lwe_secret_key(%arg0: !LowLFHE.lwe_secret_key) -> !LowLFHE.lwe_secret_key {
// CHECK-NEXT: return %arg0 : !LowLFHE.lwe_secret_key
return %arg0: !LowLFHE.lwe_secret_key
}
// CHECK-LABEL: func @type_lwe_size(%arg0: !LowLFHE.lwe_size) -> !LowLFHE.lwe_size
func @type_lwe_size(%arg0: !LowLFHE.lwe_size) -> !LowLFHE.lwe_size {
// CHECK-NEXT: return %arg0 : !LowLFHE.lwe_size
return %arg0: !LowLFHE.lwe_size
}
// CHECK-LABEL: func @type_glwe_ciphertext(%arg0: !LowLFHE.glwe_ciphertext) -> !LowLFHE.glwe_ciphertext
func @type_glwe_ciphertext(%arg0: !LowLFHE.glwe_ciphertext) -> !LowLFHE.glwe_ciphertext {
// CHECK-NEXT: return %arg0 : !LowLFHE.glwe_ciphertext
return %arg0: !LowLFHE.glwe_ciphertext
}
// CHECK-LABEL: func @type_glwe_secret_key(%arg0: !LowLFHE.glwe_secret_key) -> !LowLFHE.glwe_secret_key
func @type_glwe_secret_key(%arg0: !LowLFHE.glwe_secret_key) -> !LowLFHE.glwe_secret_key {
// CHECK-NEXT: return %arg0 : !LowLFHE.glwe_secret_key
return %arg0: !LowLFHE.glwe_secret_key
}
// CHECK-LABEL: func @type_glwe_size(%arg0: !LowLFHE.glwe_size) -> !LowLFHE.glwe_size
func @type_glwe_size(%arg0: !LowLFHE.glwe_size) -> !LowLFHE.glwe_size {
// CHECK-NEXT: return %arg0 : !LowLFHE.glwe_size
return %arg0: !LowLFHE.glwe_size
}
// CHECK-LABEL: func @type_polynomial_size(%arg0: !LowLFHE.polynomial_size) -> !LowLFHE.polynomial_size
func @type_polynomial_size(%arg0: !LowLFHE.polynomial_size) -> !LowLFHE.polynomial_size {
// CHECK-NEXT: return %arg0 : !LowLFHE.polynomial_size
return %arg0: !LowLFHE.polynomial_size
}
// CHECK-LABEL: func @type_decomp_level_count(%arg0: !LowLFHE.decomp_level_count) -> !LowLFHE.decomp_level_count
func @type_decomp_level_count(%arg0: !LowLFHE.decomp_level_count) -> !LowLFHE.decomp_level_count {
// CHECK-NEXT: return %arg0 : !LowLFHE.decomp_level_count
return %arg0: !LowLFHE.decomp_level_count
}
// CHECK-LABEL: func @type_decomp_base_log(%arg0: !LowLFHE.decomp_base_log) -> !LowLFHE.decomp_base_log
func @type_decomp_base_log(%arg0: !LowLFHE.decomp_base_log) -> !LowLFHE.decomp_base_log {
// CHECK-NEXT: return %arg0 : !LowLFHE.decomp_base_log
return %arg0: !LowLFHE.decomp_base_log
}
// CHECK-LABEL: func @type_variance(%arg0: !LowLFHE.variance) -> !LowLFHE.variance
func @type_variance(%arg0: !LowLFHE.variance) -> !LowLFHE.variance {
// CHECK-NEXT: return %arg0 : !LowLFHE.variance
return %arg0: !LowLFHE.variance
}
// CHECK-LABEL: func @type_cleartext(%arg0: !LowLFHE.cleartext<5>) -> !LowLFHE.cleartext<5>
func @type_cleartext(%arg0: !LowLFHE.cleartext<5>) -> !LowLFHE.cleartext<5> {
// CHECK-NEXT: return %arg0 : !LowLFHE.cleartext<5>